Webhooks 設定

WhatsApp Business 部落格

訂閱 Webhooks 可取得您企業接收之訊息和顧客個人檔案更新的相關通知。

建立端點

您必須先在伺服器上建立用來接收通知的端點,才能開始接收通知。

端點必須能處理兩種類型的 HTTPS 要求:「驗證要求」和「事件通知」。由於這兩種要求皆使用 HTTPS,因此伺服器必須正確配置並安裝有效的 TLS 或 SSL 憑證。不支援自我簽署憑證。

進一步瞭解「驗證要求」和「事件通知」

Webhooks 設定不會影響 WhatsApp Business 應用程式上的電話號碼。只有在您將號碼移轉至 WhatsApp Business 平台後,才會無法在您的 WhatsApp Business 應用程式上繼續使用該號碼。

訂閱 Webhooks

若要訂閱 Webhooks,您需要取得 Meta 應用程式編號和權限。若要執行此作業,請前往 Meta 應用程式主控板,執行下列步驟:

  1. 在 Meta 應用程式主控板中建立商家類型應用程式
  2. 在應用程式主控板中,將 Webhooks 產品加入您的 Meta 應用程式中

    每個 Meta 應用程式在任何時候都只能設定一個端點。如果您需要將 Webhook 更新傳送到多個端點,則需要多個 Meta 應用程式。

如果您是解決方案合作夥伴,可能需要:

  1. 在應用程式主控板中新增 whatsapp_business_messaging 權限
  2. 成功完成 Meta 應用程式審查 - 此步驟需要時間,但您可以在整個審查程序期間繼續進行測試。

瞭解 Webhooks

每當發生觸發事件時,WhatsApp Business 平台會查看該事件,並傳送通知到您先前指定的 Webhook 網址。您會收到兩種類型的通知:

  • 收到訊息:此提醒會在您收到訊息時通知您。在整份文件中也會將這類通知稱為「入站通知」。
  • 訊息狀態和定價通知:此提醒會在訊息狀態變更時通知您(例如訊息已讀取或送達)。在整份文件中也會將這類通知稱為「出站通知」。

所有 Webhooks 皆具有下列通用格式:

{
  "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"
              },
              # specific Webhooks payload            
          },
          "field": "messages"
        }]
    }]
}

如需每個欄位的相關資訊,請參閱元件

如果雲端 API 不支援您接收的訊息,則您會收到不明訊息 Webhook

承載大小

Webhooks 承載大小上限為 3MB。

應用程式端點範例

建立應用程式端點範例來測試您的 Webhooks。

Webhook 傳遞失敗

如果我們傳送 Webhook 要求至您的端點,而您的伺服器回覆非 200 的 HTTP 狀態代碼,或者如果我們因其他原因而無法傳遞 Webhook,我們會繼續嘗試並降低頻率,直到要求成功,最多 7 天。

請注意,系統會重試傳送到已訂閱 WhatsApp Business 帳號 Webhooks(及其適當欄位)的所有應用程式。這可能會導致重複的 Webhook 通知。

IP 位址

若要取得我們的 Webhook 伺服器 IP 位址,您可以在終端機中執行下列指令:

whois -h whois.radb.net — '-i origin AS32934' | grep ^route | awk '{print $2}' | sort

我們會定期變更這些 IP 位址,所以如果您要將我們的伺服器列入允許清單,可能需要偶爾重新產生此清單,並據此更新您的允許清單。