摘要
Webhooks是一種應用程式在特定事件發生時向其他系統傳送即時資料的方式。與傳統的API需要不斷輪詢不同,Webhooks可以自動推送更新,非常適合通知和事件驅動的動作。本指南解釋了Webhooks的工作原理、其優點以及如何設置它們。
Webhooks:完整指南
什麼是Webhooks?
Webhooks是由系統中特定事件觸發的HTTP回呼。當事件發生時(例如,新用戶註冊,付款處理),系統會向設定的URL發送HTTP请求(通常是POST请求)。
Webhooks的關鍵組件
事件觸發器 – 觸發Webhooks的動作(例如,新訂單,付款完成)。
Webhooks URL – 資料將被送到的端點。
Payload – HTTP請求中發送的資料,通常以JSON格式呈現。
HTTP方法 – 通常是
POST,用於交付資料。響應處理 – 接收伺服器處理請求,並可能返回成功或錯誤訊息。
當觸發事件發生時,WhatsApp Business API客戶端會偵測到它,收集相關資料,並立即向設置在應用程式設定中的Webhook URL發送HTTP請求。這個請求會更新已送出訊息的狀態或在收到新訊息時通知您。
使用Webhooks的優點
即時更新 – 資料會被立即推送,而不是周期性地拉取。
高效 – 減少了不必要的API呼叫,節省了資源。
易於實現 – 只需要一個端點來接收資料。
可擴展 – 適合高容量的事件驅動應用程式。
如何設置Webhooks
請按照以下步驟建立并配置Webhooks:
1. 識別事件觸發器
確定哪個動作會觸發Webhooks,例如:
新用戶註冊
付款完成
支援票據更新
2. 配置Webhooks URL
設置一個伺服器端點來接收Webhooks請求。這個URL必須是公開可訪問的,并能夠處理傳入的HTTP POST請求。
範例URL:https://yourapp.com/webhooks/payment-success
3. 處理Webhooks payload
您的伺服器應該能夠解析和驗證傳入的資料。
JSON payload範例:
{
"event": "payment_success",
"user_id": 12345,
"amount": 100.00,
"currency": "USD"
}4. 安全Webhooks
為了防止未經授權的存取,請考慮:
驗證payload簽名,使用HMAC密鑰。
限制IP地址到可信來源。
使用HTTPS进行安全傳輸。
5. 正確處理響應
您的伺服器應該返回HTTP 2xx狀態代碼(例如,200 OK)來確認成功接收。如果發生失敗,發送者可能会重試請求。
範例響應:
{
"status": "success",
"message": "Webhook received successfully."
}Webhooks的常見用例
電子商務: 訂單狀態更新
付款: 交易通知
CRM: 潛在客戶更新和客戶互動
DevOps: CI/CD管道觸發器
訊息:聊天機器人通知
Webhooks故障排除
1. Webhooks未觸發
確保事件觸發器正確設置。
驗證Webhooks URL是否可以訪問。
2. payload資料無效
檢查payload格式是否與預期相符。
記錄傳入請求以進行調試。
3. 驗證問題
確認API金鑰或簽名與預期值相符。
啟用日誌記錄以跟踪驗證失敗。
額外詳細資訊
WhatsApp API Gateway支持Webhooks,您可以在此處找到文件。
關於WATI Webhooks的更多資訊,請訪問Webhooks(wati.io)文件。
常見問題(FAQs)
一般問題
1. 什麼是Webhooks?
Webhooks是由系統中特定事件觸發的自動通知,使用HTTP請求在系統之間傳送,即時更新資料,而無需不斷輪詢。
2. Webhooks如何工作?
當事件被觸發時,系統會收集相關資料,然後向預先設定的Webhooks URL發送HTTP POST請求。接收系統然後處理資料,並可能返回成功或錯誤訊息。
3. Webhooks的關鍵組件是什麼?
Webhooks由以下幾個部分組成:
事件觸發器 – 觸發Webhooks的動作(例如,新訂單,付款完成)。
Webhooks URL – 資料將被送到的端點。
payload – HTTP請求中發送的資料,通常以JSON格式呈現。
HTTP方法 – 通常是POST請求,用于交付資料。
響應處理 – 接收伺服器處理請求,並可能返回成功或錯誤訊息。
設置Webhooks
4. 如何設置Webhooks?
要設置Webhooks:
識別觸發Webhooks的事件。
設置一個公開可訪問的Webhooks URL。
確保您的伺服器能夠處理傳入的資料。
使用HMAC簽名等方法來安全Webhooks。
返回HTTP 2xx狀態代碼以確認成功接收。
5. 如何安全Webhooks?
為了安全Webhooks:
使用HMAC簽名驗證來驗證payload的完整性。
限制請求來自可信的IP地址。
使用HTTPS進行安全傳輸。
6. 收到Webhooks後伺服器應該返回什麼?
您的伺服器應該返回HTTP 2xx狀態代碼(例如,200 OK)來確認成功接收。
Webhooks故障排除
7. 為什麼我的Webhooks未觸發?
確保事件觸發器正確設置。
驗證Webhooks URL是否可以訪問。
檢查伺服器日誌以查看是否有錯誤。
8. 為什麼我的Webhooks返回payload資料無效?
確認payload格式與預期相符。
驗證傳入的JSON資料在處理之前。
記錄收到的請求以進行調試。
9. 如果我的Webhooks驗證失敗,我該怎麼做?
驗證API金鑰或簽名是否與預期值相符。
檢查請求頭是否包含正確的驗證詳細資訊。
啟用日誌記錄以跟踪驗證失敗。
WhatsApp API和WATI Webhooks
10. WhatsApp Business API是否支持Webhooks?
是的,WhatsApp API Gateway支持Webhooks。你可以在此處找到相關文檔。
11. 我在哪裡可以了解更多關於WATI Webhooks的資訊?
關於WATI Webhooks的更多資訊,請訪問Webhooks(wati.io)文件。
12. 我的Wati Webhooks為什麼失敗了?
Webhooks失敗通常是因為Wati没有收到您Webhooks端點的200回應。確保您的Webhooks URL已經優化以處理和響應請求,以及在5秒內返回認可,以避免失敗。
