WebHookの理解
WebHookは、顧客が送信したリクエストの更新を受け取るためのチャネルです。ユーザーがEngageLabにメールリクエストを送信した後、EngageLabは「リクエスト結果」を同期的にユーザーに返し、メールの「送信結果」と「その他のイベント結果」は非同期的にWebHookを通じてユーザーに返されます。
WebHookの仕組み
- EngageLabは顧客にいくつかのメールイベントを提供し、顧客は特定のイベントを監視することを選択できます。
- イベントが発生すると、EngageLabは顧客が設定したURLにデータ(POST)を送信します。
- EngageLabがプッシュするデータタイプ: "Content-Type: application/json"。
- 顧客はデータを受け取り、イベントとデータを解析し、3秒以内にHTTPステータスコード200を返す必要があります。そうでない場合、EngageLabはメッセージを再送します。
使用方法
- ユーザーは対応するイベントを処理する独自のHTTPサービスを作成し、関連データを解析し、対応するURLを公開します。
- ユーザーは監視したいイベントを選択し、EngageLabの
WebHook
でデータを受信するためのURLを設定します。
署名検証
メッセージの送信元がEngageLabであることを確認するために、POSTデータの送信元に対してセキュリティ認証を行うことができます。(または認証をスキップして、直接POSTデータを解析することも可能です。)
セキュリティ認証方法は以下の通りです:
【送信設定】-【WebHook】
からAPP KEY
を取得します。- ヘッダーから
X-WebHook-Timestamp
を解析します。 - ヘッダーから
X-WebHook-AppKey
を解析します。 - ヘッダーから
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”:"failed"}
{"code":2002,“message”:"failed"}
このコードブロックはフローティングウィンドウ内に表示されます
フィールド | タイプ | 必須/任意 | 説明 |
---|---|---|---|
code | int | 任意 | エラーコード |
message | string | 任意 | 詳細なエラー情報 |
再試行メカニズム
URLアクセスエラーやタイムアウトが発生した場合、EngageLabは最大7回再試行を行います。再試行間隔は3分、10分、30分、1時間、6時間、12時間、24時間です。これにより、メッセージが失われる前にURLを修正する十分な時間が確保されます。
再試行回数を超えた場合、EngageLabはメッセージを破棄します。
各イベント処理とデータ解析ごとに、3秒以内に「成功応答」を返す必要があります。そうでない場合、EngageLabはメッセージを再送します。