WhatsApp Business 帳戶(WABA)及其資產均為 Facebook 社交關係圖的物件。如果以上其中一個物件遇到觸發事件,Facebook 都會得悉,並會向您在 Facebook 應用程式的管理中心中指定的 Webhook 網址傳送通知。
在內嵌註冊方面,您可以使用 Webhooks 來取得 WhatsApp Business 帳戶、電話號碼、訊息範本和傳送至您電話號碼之訊息的變更通知。
您需要根據自己希望接收哪些 WhatsApp Business 帳戶的 Webhooks,分別訂閱各個 WhatsApp Business 帳戶。擷取用戶端的 WhatsApp Business 帳戶編號後,為應用程式訂閱該編號以開始接收 Webhooks。
如需進一步了解訂閱 Webhooks 的相關資訊,請參閱 WhatsApp Business 帳戶的 Webhooks。
首先,為您的應用程式設定 Webhooks 產品:
如需進一步了解在應用程式管理中心訂閱 Webhooks 的相關資訊,請參閱「配置 Webhooks 產品」一文。
在 Webooks 產品面板中設定 Webhooks 之後,視乎您想為哪個 WhatsApp Business 帳戶接收 Webhooks,向其 subscribed_apps
端點傳送 POST 要求。
在要求標題中加入您的系統用戶存取憑證,並在前方附上 Authorization: Bearer
。如需有關產生系統用戶存取憑證方面的協助,請參閱「安裝應用程式和產生憑證:系統用戶」一文。
POST https://graph.facebook.com/<API_VERSION>/<WABA_ID>/subscribed_apps
curl -X POST \
'https://graph.facebook.com/v19.0
/102289599326934/subscribed_apps' \
-H 'Authorization: Bearer EAAJi...'
{ "success" : true }
您的應用程式(透過系統用戶存取憑證識別)現在應當能夠接收描述 WhatsApp Business 帳戶變更的 Webhooks 通知。
視乎您想為哪些 WhatsApp Business 帳戶接收 Webhooks 通知,就任何其他帳戶重複此程序。請注意,如果您為您的應用程式訂閱了多個 WhatsApp Business 帳戶的 Webhooks 通知,系統會將所有 Webhooks 通知傳送至您在應用程式管理中心的 Webhooks 產品面板中指定的回呼網址。
如果您想為每個 WhatsApp Business 帳戶分別使用不同的回呼網址,您必須分別為每個 WhatsApp Business 帳戶建立單獨的應用程式,而且各自有著其專屬的回呼網址,然後再使用每個應用程式的系統用戶存取憑證在每個 WhatsApp Business 帳戶上執行查詢。如果您想使用單一應用程式,您可以改為在為每個 WhatsApp Business 帳戶訂閱 Webhooks 時覆寫回呼網址。請參閱「覆寫回呼網址」一文。
如要為 WhatsApp Business 帳戶取得已訂閱 Webhooks 的應用程式清單,請向有關 WhatsApp Business 帳戶的 subscribed_apps
端點傳送 GET 要求:
GET https://graph.facebook.com/<API_VERSION>/<WABA_ID>/subscribed_apps
成功的回應會包含訂閱了此 WhatsApp Business 帳戶的應用程式陣列,並且附上每個應用程式的連結、名稱和編號屬性。
curl \
'https://graph.facebook.com/v19.0
/102289599326934/subscribed_apps' \
-H 'Authorization: Bearer EAAJi...'
{ "data" : [ { "whatsapp_business_api_data" : { "id" : "67084...", "link" : "https://www.facebook.com/games/?app_id=67084...", "name" : "Jaspers Market" } }, { "whatsapp_business_api_data" : { "id" : "52565...", "link" : "https://www.facebook.com/games/?app_id=52565...", "name" : "Jaspers Fresh Finds" } } ] }
如要為 WhatsApp Business 帳戶取消應用程式對 Webhooks 的訂閱,請向該 WhatsApp Business 帳戶的 subscribed_apps
端點傳送 DELETE 要求。
DELETE https://graph.facebook.com/<API_VERSION>/<WABA_ID>/subscribed_apps
curl -X DELETE \
'https://graph.facebook.com/v19.0
/102289599326934/subscribed_apps' \
-H 'Authorization: Bearer EAAJi...'
{ "success" : true }
請參閱 Webhooks 覆寫。
您可以設定 Webhooks 來向自己傳送有關已訂閱的 WhatsApp Business 帳戶之變更通知。可以訂閱的通知類型如下:
欄位名稱 | 描述 |
---|---|
| 當 WhatsApp Business 帳戶接受審查時,您會收到通知。 |
| 當 WhatsApp Business 帳戶有所變動時,您會收到通知。這些變動可能包括電話號碼更新、違反政策行為發生,以及 WhatsApp Business 帳戶被停權等。 |
| 當功能有所更新時,您會收到通知。這些更新可能包括變更每個 WhatsApp Business 帳戶可關聯的電話號碼數量上限,或者變更每個電話號碼可發起的對話數量上限。 |
| 當訊息範本獲批、被拒或被停用時,您會收到通知。 |
| 當您的商家收到來自顧客的訊息、您向顧客傳送訊息、訊息已送達至顧客,以及顧客已讀取您的訊息時,您會收到通知。 |
| 當與電話號碼關聯的名稱獲批或被拒時,您會收到通知。 |
| 當電話號碼的品質相關狀態有所更新時,您會收到通知。 |
| 發生以下情況時,您會收到通知: |
請參閱 WhatsApp Business 帳戶 Webhooks 參考資料 ,進一步了解各個裝載欄位;以及參閱 WhatsApp 雲端 API Webhooks 參考資料 ,進一步了解您會收到的不同類型 messages
通知。
如需更多資訊,請參閱 WhatsApp Business 帳戶的 Webhooks 文件。
{ "object": "whatsapp_business_account", "entry": [ { "id": "waba-id", "time": 1608243053, "changes": [ { "field": "phone_number_name_update", "value": { "display_phone_number": "16505551111", "decision": "APPROVED", "requested_verified_name": "WhatsApp", "rejection_reason": null } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "waba-id", "time": 1608243062, "changes": [ { "field": "phone_number_quality_update", "value": { "display_phone_number": "16505551111", "event": "FLAGGED", "current_limit": "TIER_10K" } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703058, "changes": [ { "field": "account_update", "value": { "phone_number": "16505551111", "event": "VERIFIED_ACCOUNT" } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703058, "changes": [ { "field": "account_update", "value": { "event": "DISABLED_UPDATE" "ban_info": { "waba_ban_state": ["SCHEDULE_FOR_DISABLE", "DISABLE", "REINSTATE"], "waba_ban_date": "January 31, 2021" } } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703141, "changes": [ { "field": "account_review_update", "value": { "decision": "APPROVED" } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703141, "changes": [ { "field": "message_template_status_update", "value": { "event": "APPROVED", "message_template_id": 1234567, "message_template_name": "My message template", "message_template_language": "en-US", "reason": null } } ] } ] }