跳至主要內容

Webhooks 使用指南:Wati Webhooks 或 WhatsApp API 網關?

昨日已更新

概述

Webhook 提供應用程式在特定事件發生時,以即時方式將資料傳送至其他系統之方法。與需持續查詢的傳統 API 不同,Webhook 會自動推送更新,使其成為通知與事件驅動動作的高效方法。本指南說明 Webhook 的運作方式、優點,以及如何設定。

Webhooks:完整指南

什麼是 Webhooks?

Webhook 是系統中特定事件觸發的 HTTP 回調。當事件發生(例如新用戶註冊、處理付款時),系統會將 HTTP 要求(通常為 POST 要求)傳送至設定的 URL。

Webhook 的主要組成部分

  1. 事件觸發 – 觸發 Webhook 的動作(例如下訂單)。

  2. Webhook URL – 將資料傳送的端點位置。

  3. 負載 – 在 HTTP 要求中傳送的資料,通常為 JSON 格式。

  4. HTTP 方法 – 通常為 POST,用於傳遞資料。

  5. 回應處理 – 接收伺服器處理要求並可能傳回成功或錯誤訊息。

當觸發事件發生時,WhatsApp Business API 客戶端會檢測到它,收集相關資料並立即將 HTTP 要求傳送至設定在 應用程式設定 的 Webhook URL。此要求會更新已傳送訊息的狀態或通知您有新訊息收到。

使用 Webhook 的優點

  • 即時更新 – 資料會立即推送,而不是定期拉取。

  • 高效 – 減少不必要的 API 呼叫,節省資源。

  • 容易實現 – 僅需一個端點即可接收資料。

  • 可擴展性 – 適用於高容量的事件驅動應用程式。

如何設定 Webhook

按照以下步驟建立並設定 Webhook:

1. 確定事件觸發

確定會觸發 Webhook 的動作,例如:

  • 新用戶註冊

  • 付款完成

  • 支援票 certificates 更新

2. 設定 Webhook URL

建立一個 伺服器端點 以接收 Webhook 要求。此 URL 必須可以公開存取並能處理傳入的 HTTP POST 要求。

範例 URL:https://yourapp.com/webhooks/payment-success

3. 處理 Webhook 負載

您的伺服器應能解析和驗證傳入資料。

JSON 負載的範例:

{   "event": "payment_success",   "user_id": 12345,   "amount": 100.00,   "currency": "USD" }

4. 保護 Webhook

為防止未經授權的存取,請考慮:

  • 使用HMAC 秘密金鑰驗證負載簽名

  • 限制 IP 位址 為已知信任的來源。

  • 使用 HTTPS 進行安全傳輸。

5. 正確處理回應

您的伺服器應傳回 HTTP 2xx狀態程式碼(例如 200 OK),以確認接收成功。如果發生錯誤,寄送者可能會重試要求。

回應範例:

{   "status": "success",   "message": "Webhook 接收成功。" }

常見 Webhook 用途

  • 電子商務:訂單狀態更新

  • 付款:交易通知

  • 客戶關係管理系統:潛在客戶更新及客戶互動

  • DevOps:持續整合/持續交付管線觸發

  • 即時通訊:聊天機器人通知

Webhook 的常見問題解決方法

1. Webhook 未觸發

  • 確認事件觸發已正確設定。

  • 確認 Webhook URL 是否可存取。

2. 無效負載資料

  • 檢查負載格式並確保與預期相符。

  • 記錄傳入要求以便調試。

3. 驗證問題

  • 確認 API 金鑰或簽名與預期值相符。

  • 使用記錄記錄驗證失敗事件。

其他詳情

  • WhatsApp API Gateway 支援 Webhook。您可以在此找到文件 此處

  • 如需了解 WATI Webhook 的更多資訊,請造訪 Webhooks (wati.io)

常見問題解答 (FAQs)

一般問題

1. 什麼是 Webhook?

→ Webhook 是在特定事件發生時從一個系統自動傳送到另一個系統的通知。與要求定期查詢不同,Webhook 會透過 HTTP 要求即時推送更新。

2. 如何運作 Webhook ?

→ 當事件觸發時,系統會收集相關資料,並將其作為 HTTP POST 要求傳送至預定義的 Webhook URL。接收系統然後會處理資料,並可能會傳回成功或錯誤訊息。

3. Webhook 的主要元件是什麼?」

→ Webhook 由以下元素組成:

  • 事件觸發 – 觸發 Webhook 的動作(例如新訂單、付款完成)。

  • Webhook URL – 資料傳送的端點位置。

  • 負載 – 傳送的 JSON 格式資料。

  • HTTP 方法 – 通常為 POST 要求。

  • 回應處理 – 接收伺服器處理並確認要求。

設定 Webhook

4. 如何設定 Webhook ?

→ 要設定 Webhook:

  • 確定會觸發 Webhook 的事件。

  • 設定公開可存取的 Webhook URL。

  • 確認伺服器能在傳入資料。

  • 使用驗證方法(例如 HMAC 簽名)保護 Webhook。

  • 傳回 HTTP 2xx 狀態程式碼以確認接收。

5. 如何保護我的 Webhook?

→ 要保護 Webhook:

  • 使用 HMAC 簽名驗證 驗證負載完整性。

  • 限制要求以 IP 位址 為已知信任來源。

  • 始終使用 HTTPS 進行加密傳輸。

6. 收到 Webhook 後,伺服器應傳回什麼內容?」

→ 伺服器應傳回 HTTP 2xx 未來狀態程式碼(例如 200 OK),以確認成功接收。

Webhook 問題排解

7. 為什麼我的 Webhook 未觸發?

  • 確認事件觸發設定正確。

  • 確認 Webhook URL 可存取。

  • 檢查伺服器記錄以查找錯誤。

8. 為什麼我的 Webhook 返回無效負載錯誤?

  • 確認負載格式與預期結構相符。

  • 在處理資料之前驗證傳入的 JSON 資料。

  • 記錄收到要求以便調試。

9. 如果我的 Webhook 驗證失敗,該怎麼辦?

  • 確認 API 金鑰或 HMAC 簽名與預期值相符。

  • 檢查要求標頭是否包含正確的驗證詳細資料。

  • 啟用記錄以追蹤驗證失敗事件。

WhatsApp API 和 WATI Webhook

10. WhatsApp Business API 是否支援 Webhook?

→ 是的,WhatsApp API Gateway 支援 Webhook。您可以在此處找到官方 Webhook 文件 此處

11. 在哪裡能了解更多關於 WATI Webhook 的資訊?

→ 如需 WATI Webhook 的詳細資訊,請造訪 Webhooks (wati.io) 文件。

12. 為什麼我的 Webhook 在 Wati 中失敗?

→ Webhook 失敗通常是因為 Wati 沒有從您的 Webhook 端點收到 200 回應。請確保您的端點 Webhook URL 是為了在 5 秒內處理要求,並回應要求而優化。在處理 Webhook 資料時,設定 Webhook發送收據以避免失敗。

是否回答了您的問題?