Webhooks 可讓您接收特定物件變更時的即時 HTTP 通知。例如,我們可以在用戶傳送訊息給您或訊息範本的狀態變更時,傳送通知給您。這樣您就不需要向我們的 API 查詢是否有物件發生變更,並有助於您避免達到速率限制。
本文件提供 Webhooks 的總覽,適用於 WhatsApp Business Management API、WhatsApp Business 平台雲端 API 和 WhatsApp Business 平台內部部署 API。
每個 API 可以有多種物件類型,因此每當您配置 Webhook 時,必須先選擇物件類型。由於不同物件有不同的欄位,因此您接著必須針對該物件類型訂閱特定欄位。每當您訂閱之任何物件欄位的值有所變更時,您就會收到通知。
通知會以 HTTP POST 要求的形式傳送給您,內含說明變更內容的 JSON 承載。
下表概述您可以從 Webhooks 收到的資訊。
API | 物件 |
---|---|
雲端 API |
|
內部部署 API |
|
WhatsApp Business Management 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" }] }
所有 Webhooks 皆使用 HTTPS 傳送,因此您的伺服器必須能夠接收和處理 HTTPS 要求,而且必須安裝有效的 TLS/SSL 憑證。不支援自我簽署憑證。
進一步瞭解特定 API 的 Webhooks。