Catching messages on Gmail from clients always has me running late, and checking it over and over can be a real drag. That's why I created whatsapp ping
! It lets me ping myself on WhatsApp using a webhook.
2024-10-27.11-57-23.1.mp4
few use cases of this project generated by gpt.
- 🔔 Instant Notifications: Get WhatsApp alerts for important client emails.
- 📬 Stay Connected: Easily send quick messages to your team or clients.
- 📅 Task Reminders: Schedule pings to remind yourself of upcoming tasks.
- 🎉 Timely Notification: Wish your friend a happy birthday right on time.
- 👨💻 Programmatic Use: Thanks to webhooks, integrate notifications into any app or service.
clone or fork the repo and install all dependencies using your favorite package manager. In my case, i'm using pnpm
.
pnpm i
Prepare environment variables:
you need two env variables to make this work
API_KEY=YOUR_API_KEY
MONGO_URL=your_url
# optional
SELF_HOSTED=boolean -> set to true if running in self-hosted environment
LOCAL=boolean -> for development purposes
NEXT_MSG_DELAY=number > delays between next message
We use api-key
for authentication you can use any key you like to use but we recommend using strong key that is not vulnerable to brute-force
attack.
openssl rand -base64 256
To run this bot in a serverless environment, we use MongoDB to manage the authentication state.
You can Get the MongoDB URL for free from their website.
mongodb+srv://<user_name>:<password>@cluster0.usggwa4.mongodb.net/?retryWrites=true&w=majority
start the server using the following command:
pnpm dev # start development server
OR
pnpm start # start server in production
After starting the server, it will print QR code in the terminal scan it using your phone to connect whatsapp.
Next use web hook as following to send a message,
curl -X POST localhost:8080/ping \
-H "Authorization: Bearer $YOUR_API_KEY"
-d '{
"message": "hello world",
"numbers": ["123456789012"]
}'
using js,
fetch("http://localhost:8080/ping", {
headers: {
Authorization: "Bearer YOUR_KEY",
"Content-Type": "application/json"
},
method: "POST",
body: JSON.stringify({
message: "hey",
numbers: ["<country_code_without_plus><...number>"]
})
})
.then((res) => res.text())
.then((res) => console.log(res));
- If you plan to deploy this project, it currently works only on VPS and not in a serverless environment. This means you will not be able to deploy it to the Vercel or other serverless providers.
+ We just added support for serverless deployment https://github.com/Zain-ul-din/whatsapp-ping/issues/2
A big thank you to these people for supporting this project.
Ahtisham Abbas Qureshi | YOU? |
This repository is maintained by Zain-Ul-Din
Show some ❤️ by starring this awesome repository!