文档 / Webhook
Webhook
在“设置 → Webhook”下配置一个接口地址,Meshwire 将为每个已订阅的事件通过 POST 发送已签名的 JSON 负载。
事件目录
| 事件 | 描述 |
|---|---|
| bot.published | 发布了新的流程版本 |
| subscriber.created | 新订阅者加入了机器人 |
| subscriber.blocked | 订阅者屏蔽了机器人 |
| broadcast.completed | 群发已完成发送 |
| broadcast.failed | 群发发送失败 |
| message.inbound | 收到一条入站消息 |
验证签名
每个请求都包含一个 X-Meshwire-Signature 请求头:这是使用您的接口密钥对原始请求正文计算得到的 HMAC-SHA256 十六进制摘要。
const expected = crypto
.createHmac("sha256", endpointSecret)
.update(rawBody)
.digest("hex");
if (expected !== req.headers["x-botforge-signature"]) {
return res.status(401).end();
}重试与退避
如果 5 秒内未收到 2xx 响应,投递将按指数退避重试:1 分钟、5 分钟、30 分钟、2 小时,之后每 12 小时一次,最长持续 24 小时。最后一次尝试失败后,该接口会被标记,并通过邮件通知您。1 小时内失败率超过 50% 的接口将被临时禁用。
负载示例
{
"id": "evt_3n7f",
"type": "broadcast.completed",
"createdAt": "2024-05-02T14:03:11Z",
"data": {
"broadcastId": "bcast_7f1",
"botId": "bot_9k2",
"stats": { "total": 4210, "delivered": 4180, "blocked": 19, "failed": 11 }
}
}