跳到主要内容

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 次。