Webhooks 讓您可以收到特定物件相關變更的即時 HTTP 通知。例如,用戶傳送訊息給您或訊息範本的狀態改變時,我們可以向您傳送通知。這樣,您就無需查詢我們的 API 以了解可能發生或未發生的物件變更,並協助您避免達到限速額度。
本文件概述了 Webhooks,這項功能適用於 WhatsApp Business 管理 API、WhatsApp Business 平台雲端 API 以及 WhatsApp Business 平台內部部署 API。
每個 API 都可以擁有多種物件類型。因此,無論您何時配置 Webhooks,都必須先選擇物件類型。由於不同物件有不同的欄位,您必須針對該物件類型訂閱特定欄位。每當您所訂閱物件欄位的值有所變動,您就會收到通知。
我們會以 HTTP POST 要求的形式傳送通知,其中包含描述該變更的 JSON 裝載。
下表概述了您可以從 Webhooks 收到的資訊。
API | 物件 |
---|---|
雲端 API |
|
內部部署 API |
|
WhatsApp Business 管理 API |
|
用戶向您傳送文字訊息時,系統向您傳送的 Webhook 通知會如以下範例所示。
在雲端 API 中,物件一律是 whatsapp_business_account
,但 field
將表示所傳送的資訊類型。
{ "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" }] }] }
在內部部署 API 中,由於您的用戶端將傳送 Webhook 而非 Meta,物件將會是 contacts
和 messages
、errors
或 statuses
和 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" }] }
您需使用 HTTPS 傳送所有 Webhooks,因此您的伺服器必須能夠接收和處理 HTTPS 要求,而且必須安裝有效的 TLS/SSL 證書。系統不支援自行簽署的憑證。
進一步了解特定 API 的專用 Webhooks。