出站 Webhook
同样的告警事件,以 JSON 投递到你控制的任意 URL。无需 Slack。
账户 → Slack、Teams 与 Webhooks → 出站 Webhooks需要订阅或试用1 min read
Webhook 订阅 告警事件 的方式与 Slack 频道完全相同,只是以 HTTP POST 而非消息的形式接收。可以指向 Zapier、Make、n8n、事故处理工具,或你自己的端点。Webhook 在 账户 → Slack, Teams & Webhooks 页面底部管理,无论是否已连接 Slack 工作区均可使用。
要发送到 Microsoft Teams?请改用 Microsoft Teams 一节。Teams 只渲染自己的卡片格式,并会拒绝下方的 JSON,因此有独立的、无需编写代码的配置方式。
创建一条
- 点击 新建 Webhook 并为其命名,例如 Zapier。
- 粘贴目标 URL。必须是公开端点:私有和内网地址会被拒绝,且每一次重定向都会重新校验。
- 勾选应接收的告警类型,并设置最低严重级别,选项与告警订阅相同。
- 复制创建时仅显示一次的 签名密钥,并在接收端配置。之后不会再显示。
- 使用发送图标发送单次测试事件,或使用旁边的图标 POST 四条覆盖不同事件类型的 示例事件,以便在检测器真正触发之前构建并测试处理程序。示例带有
payload.sample: true,且 id 以sample-为前缀。
会收到什么
每个事件一次 POST,Content-Type: application/json:
{
"id": "<event uuid>",
"event_type": "traffic_anomaly",
"severity": "high",
"site_id": "<property uuid, or null>",
"occurred_at": "2026-08-29T06:00:00.000Z",
"payload": { "siteUrl": "https://example.com/", "metric": "clicks", "...": "..." },
"source": "autopseo"
}
payload 对象因事件类型而异,承载具体信息:资源、指标、日期、受影响的 URL。
验证签名
每个请求都带有 X-AutoPSEO-Signature: sha256=<hex>,即使用该 Webhook 密钥对原始请求体计算的 HMAC-SHA256。请在任何 JSON 解析之前,对收到的原始字节计算相同的 HMAC,并以常量时间比较两者。请求还会以 AutoPSEO-Webhook/1.0 user agent 标识自身,但真正应信任的是签名。
投递行为
- 投递与 Slack 共用同一任务,该任务每十分钟执行一次,因此 Webhook 会在检测后数分钟内触发。
- 每个请求在十秒后超时。看似暂时性的失败会在后续运行中重试;持续失败的 Webhook 会被禁用,原因显示在对应行上。
- 一旦收到事件即返回 2xx,并将实际处理放到异步执行。
- Webhook 可随时暂停、编辑和删除。密钥无法再次查看:如需轮换,请创建新的 Webhook 并删除旧的。