Thanks to visit codestin.com
Credit goes to developers.facebook.com

這份文件已更新。
中文(香港) 的翻譯尚未完成。
英文更新時間:10月7日

WhatsApp Business 平台專用 Webhooks

Webhooks 讓您可以收到特定物件相關變更的即時 HTTP 通知。例如,用戶傳送訊息給您或訊息範本的狀態改變時,我們可以向您傳送通知。這樣,您就無需查詢我們的 API 以了解可能發生或未發生的物件變更,並協助您避免達到限速額度。

本文件概述了 Webhooks,這項功能適用於 WhatsApp Business 管理 API、WhatsApp Business 平台雲端 API 以及 WhatsApp Business 平台內部部署 API。

物件、欄位與值

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

我們會以 HTTP POST 要求的形式傳送通知,其中包含描述該變更的 JSON 裝載。

可用 Webhooks

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

API物件

雲端 API

  • 顧客執行某項動作,例如回覆企業訊息
  • 顧客更新手機號碼
  • 由企業傳送,已送達顧客裝置或顧客已讀的訊息,其中包括定價資訊
  • 訊息出現錯誤

內部部署 API

  • 顧客執行某項動作,例如回覆企業訊息
  • 顧客更新手機號碼
  • 由企業傳送,已送達顧客裝置或顧客已讀的訊息,其中包括定價資訊
  • 訊息出現錯誤

WhatsApp Business 管理 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,物件將會是 contactsmessageserrorsstatusespricing

{
  "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 伺服器

您需使用 HTTPS 傳送所有 Webhooks,因此您的伺服器必須能夠接收和處理 HTTPS 要求,而且必須安裝有效的 TLS/SSL 證書。系統不支援自行簽署的憑證。

後續步驟

  • 新手指南:找出哪些 API 適合您的商家。
  • 顯示名稱:設定在 WhatsApp 訊息顯示的商家名稱。
  • 手機號碼:將手機號碼與您的 WhatsApp Business 帳戶連結
  • 定價:了解定價以及設定付款的方法。

另請參閱