SMSHookの理解
SMSHookは、顧客が送信状況の更新を受け取るためのチャネルです。ユーザーがEngageLabにメールリクエストを送信した後、EngageLabは「リクエスト結果」を同期的にユーザーに返し、メールの「送信結果」および「その他のイベント結果」はSMSHookを介して非同期的にユーザーに返されます。
SMSHookのメカニズム
- EngageLabは顧客に複数のメールイベントを提供し、顧客は特定のイベントを監視することを選択できます。
- イベントが発生すると、EngageLabは顧客が設定したURLにデータ(POST)を送信します。
- EngageLabがプッシュするデータタイプ: "Content-Type: application/json"。
- 顧客はデータを受信し、イベントとデータを解析し、3秒以内にHTTPステータスコード200を返す必要があります。そうでない場合、EngageLabはメッセージを再送します。
使用方法
- ユーザーは対応するイベントを処理する独自のHTTPサービスを作成し、関連データを解析し、対応するURLを公開します。
- ユーザーは監視したいイベントを選択し、EngageLabの
SMSHook
でデータを受信するためのURLを設定します。
署名検証
メッセージの送信元がEngageLabであることを確認するために、POSTデータの送信元に対してセキュリティ認証を行うことができます。(認証を行わずに直接POSTデータを解析することも可能です。) セキュリティ認証の方法は以下の通りです:
【送信設定】-【SMSHook】
からAPP SECRET
を取得します。- ヘッダーから
X-SMSHook-Timestamp
を解析します。 - ヘッダーから
X-SMSHook-AppKey
を解析します。 - ヘッダーから
X-SMSHook-Signature
を解析します。 - md5(timestamp+appkey+secret)を使用して署名
signature
を生成し、それをX-SMSHook-Signature
と比較します。
応答メカニズム
開発者のサービスがEngageLabからのコールバックを受信した後、以下の要件に従って3秒以内に応答する必要があります:
正常に受信した場合: HTTPレスポンスステータスコードは200または204を返し、応答メッセージは不要です。
受信に失敗した場合: HTTPレスポンスステータスコードは5XXまたは4XXを返し、以下の形式で応答メッセージを返す必要があります:
{"code": 2002, "message": "Failure"}
フィールド | タイプ | 必須/任意 | 説明 |
---|---|---|---|
code | int | 任意 | エラーコード |
message | string | 任意 | 詳細なエラーメッセージ |
再試行メカニズム
URLアクセスエラーやタイムアウトが発生した場合、EngageLabは最大7回再試行します。再試行間隔は3分、10分、30分、1時間、6時間、12時間、24時間です。これにより、メッセージが失われる前にURLを修正する十分な時間が確保されます。
再試行制限を超えた場合、EngageLabはメッセージを破棄します。
各イベントの処理とデータ解析について、3秒以内に「正常に受信した応答」を返す必要があります。そうでない場合、EngageLabはメッセージを再送します。