WhatsApp Business 平台的 Webhooks

WhatsApp Business 部落格

Webhooks 可讓您接收特定物件變更時的即時 HTTP 通知。例如,我們可以在用戶傳送訊息給您或訊息範本的狀態變更時,傳送通知給您。這樣您就不需要向我們的 API 查詢是否有物件發生變更,並有助於您避免達到速率限制。

本文件提供 Webhooks 的總覽,適用於 WhatsApp Business Management API、WhatsApp Business 平台雲端 API 和 WhatsApp Business 平台內部部署 API。

物件、欄位和值

每個 API 可以有多種物件類型,因此每當您配置 Webhook 時,必須先選擇物件類型。由於不同物件有不同的欄位,因此您接著必須針對該物件類型訂閱特定欄位。每當您訂閱之任何物件欄位的值有所變更時,您就會收到通知。

通知會以 HTTP POST 要求的形式傳送給您,內含說明變更內容的 JSON 承載。

可用的 Webhooks

下表概述您可以從 Webhooks 收到的資訊。

API物件

雲端 API

  • 顧客執行動作,例如回覆商業訊息
  • 顧客更新電話號碼
  • 商家已傳送訊息、訊息已傳遞給顧客,或顧客已讀取訊息,包括定價訊息
  • 訊息發生錯誤

內部部署 API

  • 顧客執行動作,例如回覆商業訊息
  • 顧客更新電話號碼
  • 商家已傳送訊息、訊息已傳遞給顧客,或顧客已讀取訊息,包括定價訊息
  • 訊息發生錯誤

WhatsApp Business Management API

  • 官方商業帳號狀態及顯示名稱狀態變更
  • WhatsApp Business 帳號審查狀態變更
  • WhatsApp Business 帳號資訊更新,包括違反政策的相關資訊
  • WhatsApp Business 帳號的功能變更,例如每個電話號碼的對話數量變更
  • 訊息範本通過審查、遭拒絕或停用
  • 與電話號碼相關聯的顯示名稱通過審查或遭拒絕
  • 電話號碼的品質相關狀態變更

簡訊通知範例

以下範例代表用戶傳送簡訊給您時,系統傳送給您的 Webhook 通知。

雲端 API

對於雲端 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

對於內部部署 API,因為用戶端傳送的是 Webhook 而不是 Meta,所以物件會是 contactsmessageserrors,或是 statusespricing

{
  "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 傳送,因此您的伺服器必須能夠接收和處理 HTTPS 要求,而且必須安裝有效的 TLS/SSL 憑證。不支援自我簽署憑證。

後續步驟

  • 開始使用 - 決定您的商家適用的 API。
  • 顯示名稱 - 設定顯示在 WhatsApp 訊息中的商業名稱。
  • 電話號碼 - 將電話號碼與 WhatsApp Business 帳號連結
  • 定價 - 瞭解定價以及如何設定付款方式。