瞭解 WebHook
最新更新:2023-03-14
WebHook 是客戶接收其發送情况的通路。 用戶將郵件請求發送給 EngageLab 之後,EngageLab 會把「請求結果」同步返回給用戶,而郵件的「發送結果」和「其他事件結果」是通過 WebHook 非同步返回給用戶的。
WebHook 機制
- EngageLab 為客戶提供了一些郵件事件,客戶可以選擇關注某些事件
- 當某事件發生,就會觸發 EngageLab 向客戶設定的 URL 發送數據(POST)
- EngageLab 推送的資料類型:“Content-Type: application/json”
- 客戶收到數據,解析出事件和數據,你需要在 3s 內返回 HTTP Status Code 200,否則,EngageLab 將會重發該條消息。
使用方法
- 用戶自行編寫 HTTP 服務,使之能够處理相應的事件,解析相關資料,並開放出相應 URL
- 用戶在 EngageLab 的
WebHook
中選擇關注的事件,配寘接收數據的 URL
簽名驗證
為了確保消息的來源身份是 EngageLab,你可以選擇對 POST 數據的來源進行安全認證。(不驗證,直接解析 POST 的數據也可以). 安全認證的方法如下:
- 通過
【發送設置】-【WebHook】
獲取APP KEY
- 解析出 Header中的
X-WebHook-Timestamp
- 解析出Header中的
X-WebHook-AppKey
- 解析出Header中的
X-WebHook-Signature
- 使用 md5(X-WebHook-Timestamp+X-WebHook-AppKey+ APP KEY)生成簽名
signature
, 與X-WebHook-Signature
進行比較
應答機制
開發者服務接收到 EngageLab 的回檔後,需要在 3 秒內按下述要求進行應答 接收成功:HTTP 應答狀態碼需返回 200 或者 204,無需返回應答報文。 接收失敗:HTTP 應答狀態碼需返回 5XX 或者 4XX,同時需返回應答報文,格式如下:
{"code":2002,“message”:"失敗"}
參數 | 類型 | 必選/可選 | 描述 |
---|---|---|---|
code | int | 可選 | 錯誤碼 |
message | string | 可選 | 錯誤詳細資訊 |
重試機制
如果遇到 URL 訪問錯誤或超時,EngageLab 最多會重試 7 次。每次重試的時間間隔最快為 3min,10min,30min,1h,6h,12h,24h. 即在消息遺失前,你有足够的時間來修復 URL. 如果超過重試次數,EngageLab 將會把消息丟棄。 每次事件處理,數據解析,你需要在 3s 內返回「接收成功的應答」,否則,EngageLab 將會重發該條消息。