メインコンテンツまでスキップ

Webhooks

Webhook は、チャネルプロバイダーが PulseHub に何かが起こったことを通知する方法です — 顧客がメッセージを送信した、配信ステータスが変更された、など。


Webhook URL パターン​

https://yourdomain.com/webhooks/{channel_type}/{channel_id}

Webhook 検証(GET リクエスト)​

一部のプロバイダーは、実際のメッセージを送信する前にチャレンジで webhook URL を検証します:

WhatsApp / Facebook / Instagram​

PulseHub は hub.verify_token を確認し、hub.challenge を返します。

Telegram​

GET 検証なし — Bot API で webhook を設定するだけで十分です。

Viber​

初回オープン時に conversation_started イベントを送信。PulseHub は {"status": 0} を返します。


署名検証​

プロバイダーヘッダーシークレット
WhatsApp/Facebook/InstagramX-Hub-Signature-256App Secret
ViberX-Viber-Content-SignatureAuth Token
Twilio—URL ベースのセキュリティ
Telegram—UUID ベースの URL セキュリティ

すべての HMAC 比較は hash_equals()(定数時間)を使用します。


イベントログ​

すべての webhook ペイロードは webhook_events テーブルに status = pending で記録されます。処理後:processed。失敗時:failed。


失敗した Webhook のリトライ​

cron ジョブが 24 時間以内に失敗したイベントを最大 5 回リトライします。