https://github.com/clairton/baileys-cloud-api
1.0K
An implementation of Baileys(https://github.com/adiwajshing/Baileys) as
RESTful API service with multi device support with a Whatsapp Cloud API format
https://developers.facebook.com/docs/whatsapp/cloud-api.
The media files are saved in file system at folder data with the session.
Up service for development docker compose up
The payload is based on
https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/components#messages-object
To send a message
curl -i -X POST \
http://localhost:9876/v15.0/5549988290955/messages \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"to": "5549988290955",
"type": "text",
"text": {
"body": "hello"
}
}'
To send a message to group
curl -i -X POST \
http://localhost:9876/v15.0/5549988290955/messages \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"to": "[email protected]",
"type": "text",
"text": {
"body": "hello"
}
}'
To test media
curl -i -X GET \
http://localhost:9876/v15.0/5549988290955/3EB005A626251D50D4E4 \
-H 'Content-Type: application/json'
This return de url and request this url like
curl -i -X GET \
http://locahost:9876/download/v13/5549988290955/[email protected]/48e6bcd09a9111eda528c117789f8b62.png \
-H 'Content-Type: application/json'
To send media
https://developers.facebook.com/docs/whatsapp/cloud-api/guides/send-messages#media-messages
curl -i -X POST \
http://localhost:9876/v15.0/5549988290955/messages \
-H 'Content-Type: application/json' \
-d '{
"messaging_product": "whatsapp",
"to": "5549988290955",
"type": "image",
"image": {
"link" : "https://github.githubassets.com/favicons/favicon-dark.png"
}
}'
Webhook Events like this https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/payload-examples
Message status update on this https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/payload-examples#message-status-updates
To turn possible work with group, we add two fields(group_id, group_subject) in message beside cloud api format.
{
"object": "whatsapp_business_account",
"entry": [{
"id": "WHATSAPP_BUSINESS_ACCOUNT_ID",
"changes": [{
"value": {
"messaging_product": "whatsapp",
"metadata": {
"display_phone_number": PHONE_NUMBER,
"phone_number_id": PHONE_NUMBER_ID
},
"contacts": [{
"profile": {
"name": "NAME"
},
"group_id": "[email protected]",
"group_subject": "Awesome Group",
"wa_id": PHONE_NUMBER
}],
"messages": [{
"from": PHONE_NUMBER,
"id": "wamid.ID",
"timestamp": TIMESTAMP,
"text": {
"body": "MESSAGE_BODY"
},
"type": "text"
}]
},
"field": "messages"
}]
}]
}
Messages failed with this
https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/payload-examples#status--message-failed
Custom errors sound append this codes
https://developers.facebook.com/docs/whatsapp/cloud-api/support/error-codes
with:
A docker-compose.yml file is available:
docker compose up
Visit http://localhost:9876/ping wil be render a "pong!"
A docker-compose.yml example for production:
version: '3'
services:
app:
image: clairton/baileys-cloud-api:latest
volumes:
- ./data:/home/bca/app/data
deploy:
restart_policy:
condition: on-failure
Visit http://localhost:9876/ping wil be render a "pong!"
The ENV Configurations put default value and the format and same name of configs:
WEBHOOK_URL=the webhook url
WEBHOOK_TOKEN=the webhook header token
WEBHOOK_HEADER=the webhook header name
BASE_URL=current base url to download medias
I can't guarantee or can be held responsible if you get blocked or banned by using this software. WhatsApp does not allow bots using unofficial methods on their platform, so this shouldn't be considered totally safe.
Released under the GPLv3 License.
Comercial version is available:
More informations in http://wa.me/+5549988290955
Content type
Image
Digest
sha256:94d776fda…
Size
118.8 MB
Last updated
over 3 years ago
docker pull clairton/baileys-cloud-api