(Utilizzo di Node.js per implementare i webhook)
I webhook ti consentono di ricevere notifiche HTTP in tempo reale relative a modifiche a oggetti specifici. Ad esempio, potremmo inviarti una notifica quando un utente ti invia un messaggio o quando lo stato di un modello di messaggio cambia. In questo modo eviti di dover interrogare le nostre API in merito a eventuali modifiche agli oggetti, il che ti aiuta a non raggiungere il rate limit.
Questo documento fornisce una panoramica dei webhook e si applica all'API WhatsApp Business Management, all'API Cloud della piattaforma WhatsApp Business e all'API On-Premises della piattaforma WhatsApp Business.
Ogni API può avere più tipi di oggetto, quindi ogni volta che configuri un webhook devi prima scegliere un tipo di oggetto. Dal momento che oggetti differenti hanno campi differenti, devi attivare l'iscrizione a campi specifici per quel tipo di oggetto. Per ogni modifica al valore di un qualsiasi campo dell'oggetto per cui hai attivato l'iscrizione, ricevi una notifica.
Le notifiche vengono inviate come richieste HTTP POST e contengono un payload JSON che descrive la modifica.
La tabella seguente illustra le informazioni che puoi ricevere dai webhook.
API | Oggetti |
---|---|
API Cloud |
|
API On-Premises |
|
API WhatsApp Business Management |
|
Gli esempi seguenti rappresentano la notifica webhook che ricevi quando un utente ti invia un messaggio di testo.
Per l'API Cloud, l'oggetto è sempre whatsapp_business_account
, ma field
sarà indicativo del tipo di informazioni inviate.
{ "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" }, "wa_id": PHONE_NUMBER }], "messages": [{ "from": PHONE_NUMBER, "id": "wamid.ID", "timestamp": TIMESTAMP, "text": { "body": "MESSAGE_BODY" }, "type": "text" }] }, "field": "messages" }] }] }
Per l'API On-Premises, poiché il webhook viene inviato dal tuo client anziché da Meta, l'oggetto è rappresentato da contacts
e messages
, errors
oppure statuses
e pricing
.
{ "contacts": [{ "profile": { "name": "NAME" }, "wa_id": "WHATSAPP_BUSINESS_ACCOUNT_ID" }], "messages":[{ "from": "PHONE_NUMBER", "id": "wamid.ID", "timestamp": "TIMESTAMP", "text": { "body": "MESSAGE_BODY" }, "type": "text" }] }
Tutti i webhook sono inviati tramite HTTPS, quindi il tuo server deve essere abilitato a ricevere ed elaborare le richieste HTTPS e deve avere un certificato TLS/SSL valido installato. I certificati autofirmati non sono supportati.
Ulteriori informazioni sui webhook per un'API specifica.