Skip to content

企业微信

企业微信群机器人是最简单的通道。没有额外签名 —— webhook URL 里的 bot key 就是凭据

模式状态
Notification支持。群机器人文本推送。
IM bridge不支持(企微机器人不承载入站对话)。

载荷

企微群机器人接受和钉钉一样的扁平文本:

json
{
  "msgtype": "text",
  "text": {"content": "[CRITICAL] node-01 swap_high\nswap_in_pages > 1000 for 5m\nsource: alert\ndedupe: alert:swap_high:device=7"}
}

body 由飞书 / 钉钉共用的 formatText helper 构造。Sender 是 NewWeComSender

无签名

webhook URL 形如:

text
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=<bot-uuid>

key= query 参数是 bot 标识和凭据。谁拿到 URL 谁就能往群里发。没有独立 secret、没有 HMAC、没有时间戳。sender 忽略 Secret 字段里任何输入 —— 和 Slack 一样的构造时丢弃策略。

URL 当密码看

泄露 URL 等同于泄露 bot 的发帖权限。轮换方式是在企微群里把 bot 删了再加(key 会变)。

配置

  1. 在桌面端企微群 → 群机器人 → 添加机器人 → 添加 → 新建。给名字和头像。
  2. 企微会显示 Webhook 地址。整条复制 —— 包括 ?key=… query。
  3. 在 Ongrid:Settings → Channels → New → Provider = wecom → Endpoint = 第 2 步那个 URL。Secret 留空。
  4. Test。bot 会往群里发 [INFO] Ongrid test

小坑

一个 bot 只对应一个群

每个企微群机器人作用域是 一个群。要发到两个群就建两个 bot 两个 Ongrid 通道。(钉钉和飞书也是这样;告警流水线关心的抽象是通道,不是聊天平台。)

载荷里没有 mentioned_list

sender 只发纯文本。@特定成员(mentioned_list / mentioned_mobile_list)还没做 —— 今天要用的话改用通用 webhook

消息频率上限

企微群机器人每分钟上限 20 条。爆量后返 errcode: 45009("api freq out of limit")。告警流水线的按规则降噪通常足够,但 100 台主机集群的一条吵闹关键规则可能撑爆它。必要时用多个 bot 按团队路由。

主要是国内场景

qyapi.weixin.qq.com 是面向国内部署的。海外团队更适合 Slack / Telegram / Larksuite。WeCom for International(腾讯海外产品)是另一套 API 面,今天没接。

与其他国内 IM 对比

方面企业微信飞书钉钉
鉴权仅 URL key=body 里的 signURL query 的 sign
签名算法HMAC-SHA256HMAC-SHA256
配置步骤2 步(加 bot、粘贴)4 步(签名 + secret)4 步(签名 + secret)
IM bridge 支持是(长连接)仅 schema

第一次配通道就从企微开始

最容易配,最难配错。如果告警没到,99% 是 bot 从群里被删了,或者主机访问不到 qyapi.weixin.qq.com

相关