跳到主要内容

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