概述
Webhook 提供應用程式在特定事件發生時,以即時方式將資料傳送至其他系統之方法。與需持續查詢的傳統 API 不同,Webhook 會自動推送更新,使其成為通知與事件驅動動作的高效方法。本指南說明 Webhook 的運作方式、優點,以及如何設定。
Webhooks:完整指南
什麼是 Webhooks?
Webhook 是系統中特定事件觸發的 HTTP 回調。當事件發生(例如新用戶註冊、處理付款時),系統會將 HTTP 要求(通常為 POST
要求)傳送至設定的 URL。
Webhook 的主要組成部分
事件觸發 – 觸發 Webhook 的動作(例如下訂單)。
Webhook URL – 將資料傳送的端點位置。
負載 – 在 HTTP 要求中傳送的資料,通常為 JSON 格式。
HTTP 方法 – 通常為
POST
,用於傳遞資料。回應處理 – 接收伺服器處理要求並可能傳回成功或錯誤訊息。
當觸發事件發生時,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發送收據以避免失敗。