Webhook 事件推送
在控制台「站点设置 → Webhook」或 REST API POST /tenant/sites/:siteID/webhooks 创建订阅:填写接收 URL、勾选事件、选择渠道。
支持的事件(7 类)
| 事件 | 说明 |
|---|---|
content.publish | 内容发布 |
content.update | 内容更新 |
content.delete | 内容删除 |
form.submit | 表单提交 |
comment.created | 新评论 |
publish.complete | 站点发布完成 |
publish.failed | 站点发布失败 |
渠道与消息格式
渠道 custom 推送原始 JSON;wecom / dingtalk / feishu 直接适配企业微信 / 钉钉 / 飞书群机器人格式,填机器人地址即用。
custom 渠道消息体结构:
{
"event": "publish.complete",
"timestamp": "2026-08-26T10:00:00+08:00",
"site_id": 1,
"site_name": "我的站点",
"data": { "message": "已发布 32 个页面,版本 v7", "pages": 32, "version": 7 }
}
签名校验(防伪造)
创建订阅时设置签名密钥后,每次推送附带请求头:
X-Webhook-Event— 事件名X-Webhook-Timestamp— Unix 时间戳X-Webhook-Signature—sha256=<hex(HMAC-SHA256(密钥, 请求体))>
服务端用同一密钥对请求体计算 HMAC-SHA256 并与签名头比对,不一致应拒绝。
重试策略
目标不可达或返回非 2xx 时,按 1 分钟 / 5 分钟 / 30 分钟重试 3 次;投递记录可在控制台「Webhook → 推送日志」查看,也可用 POST .../webhooks/:id/test 发送测试消息。