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 }
}

签名校验(防伪造)

创建订阅时设置签名密钥后,每次推送附带请求头:

服务端用同一密钥对请求体计算 HMAC-SHA256 并与签名头比对,不一致应拒绝。

重试策略

目标不可达或返回非 2xx 时,按 1 分钟 / 5 分钟 / 30 分钟重试 3 次;投递记录可在控制台「Webhook → 推送日志」查看,也可用 POST .../webhooks/:id/test 发送测试消息。