Webhook のイベント受信処理
ご利用サービス側で実装が必要な Webhook 受信のための処理です。
ステータスコードの応答
Webhook イベントの受信に成功した場合は 200 OK
などの 2xx 系ステータスコード を応答してください。
ステータスコードの応答は 5 秒以内とし、それより経過した場合はタイムアウトとなります。
タイムアウト時にはソーシャルPLUS から イベント通知の再送 が行われます。
event_id について
再送されたイベントは、常に同じ event_id
が送信されます。
ご利用サービス側では event_id
により、イベント通知の重複を検知することができます。
署名の検証
Webhook イベントがソーシャルPLUS から送られたことを確認するために、ご利用サービス側でリクエストヘッダー x-socialplus-signature
に含まれる署名を検証します。
検証方法は以下のとおりです。
- ソーシャルPLUS の API Key を秘密鍵として、HMAC-SHA256 アルゴリズムを使用してリクエストボディ(ペイロード)のダイジェスト値を取得します。
- ダイジェスト値を Base64 エンコードした値と、リクエストヘッダー
x-socialplus-signature
に含まれる署名が一致することを確認します。
署名検証について
ペイロードの「署名の検証」はセキュリティ確保のために行っていただく処理です。署名の検証を行わずとも、リクエストボディ(ペイロード)のデータを利用することは可能です。
ご利用サービス側からご提供いただく Webhook URL は、ソーシャルPLUS 側で意図的に公開することはありませんが、インターネット上に存在する以上、意図しない第三者からのアクセスが発生することがあります。 そのため、正しくソーシャルPLUS からの通知であることを検証するために、秘匿された鍵情報(API Key)を用いた署名の検証を行っていただくことを強く推奨します。