开发者

Webhook 与消息嵌入内容

向 Sibrel 频道发送通知:创建 Webhook、Bearer 密钥、嵌入内容、限制与错误处理。

与项目核对时间: 2026-10-15 · 支持: support@sibrel.net

什么时候使用 Webhook

构建通知、外部服务事件或更新可以使用 Webhook。它会向预先选定的文字频道发布消息。若要读取消息、处理命令和按钮或响应事件,请使用机器人。

创建 Webhook

打开文字频道的设置 → Webhook · 自动消息。创建和删除 Webhook 需要 MANAGE_CHANNELS 权限。请保存返回的路径和令牌:密钥只显示一次,数据库中只保存它的哈希值。

账户令牌操作
GET /api/channels/:channelId/webhooks列出 Webhook。
POST /api/channels/:channelId/webhooks{name, author_name?, avatar_url?} → 201 {webhook, token, path}。
DELETE /api/channels/:channelId/webhooks/:id删除 Webhook。

地址和标识属于该频道所在主机的 API。Webhook 不支持私聊、群组和公开空间。

发送

POST /api/webhooks/:id/execute
Authorization: Bearer <WEBHOOK_TOKEN>
Content-Type: application/json

{ "embeds": [{
  "title": "构建完成",
  "description": "该版本已可审阅。",
  "color": 5793266,
  "fields": [{ "name": "状态", "value": "就绪", "inline": true }]
}] }

也支持 {"content":"文本"},最多 2000 个字符。最多 10 个嵌入内容,合计 6000 个字符。当文本与嵌入内容同时出现时,文本会占用一个嵌入位置。成功的 201 响应包含消息 id 和 channel_id。频道由配置决定,而不是请求体。

限制与安全

  • 每个 Webhook 每 2 秒接受一次请求。收到 429 时,请按 Retry-After: 2 等待。
  • 作者和头像在创建 Webhook 时固定,而不是由任意发送方决定。消息会被标记为 Webhook。
  • 发送时会检查创建者的权限。权限丢失可能导致 403。
  • 结果不明的请求不要重复发送,除非先进行核对:目前没有实现幂等。
  • 请把密钥放在 Authorization 中,而不是 URL 里。密钥泄露时请删除并重新创建 Webhook。
  • 避免在通知和外部图片链接中放入个人数据。