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

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
TwilioURL ベースのセキュリティ
TelegramUUID ベースの URL セキュリティ

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


イベントログ

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


失敗した Webhook のリトライ

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