瞭解 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 SECRET
  • 解析出 Header中的 X-WebHook-Timestamp
  • 解析出Header中的 X-WebHook-AppKey
  • 解析出Header中的 X-WebHook-Signature
  • 使用 md5(timestamp+appkey+secret)生成簽名 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 將會重發該條消息。

在文档中心打开