自建企微机器人与应用消息推送选型建议是什么

文章导读
自建企微消息推送主要有「群机器人」和「自建应用」两种路径,简单告警选机器人,需要指定接收人或复杂交互选自建应用。
📋 目录
  1. 选型核心逻辑
  2. 群机器人实操(Webhook)
  3. 自建应用实操(API)
  4. 验证与常见错误
  5. 安全与最佳实践
  6. 参考来源
A A

自建企微消息推送主要有「群机器人」和「自建应用」两种路径,简单告警选机器人,需要指定接收人或复杂交互选自建应用。

先说结论:如果只是向固定群聊发送简单通知,群机器人配置最快;如果需要发送给特定成员、部门或使用模板卡片,必须走自建应用接口。

  • 适合:群机器人适合运维告警、日常通知;自建应用适合业务触达、需要用户回复的场景。
  • 重点看:消息接收范围是否受限,机器人只能发进群,应用可以发给具体人。
  • 别忽略:自建应用需将接收人纳入应用可见范围,无需用户主动关注。

选型核心逻辑

群机器人本质是一个 Webhook 地址,绑定在某个群聊里,权限仅限于该群。自建应用则是基于企业身份调用的 API,权限更高,可以指定接收人,但鉴权流程更复杂,需要 CorpID、Secret 和 AgentID。

不需要执行复杂命令,先明确你的通知对象是谁。如果是群聊,直接添加机器人;如果是具体的人,去企业微信后台创建应用。

群机器人实操(Webhook)

机器人无需鉴权,获取 Webhook 地址后即可直接发送 HTTP POST 请求。

1. 获取地址

在群聊设置中添加机器人,复制 Webhook 地址,格式通常为:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx

2. 发送测试(curl 示例)

curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{
  "msgtype": "text",
  "text": {
    "content": "告警测试:服务 CPU 使用率超过 80%"
  }
}'

3. 注意事项

  • 消息类型支持 text、markdown、news 等,告警建议用 markdown 保留格式。
  • 频率限制:每个机器人每分钟最多 20 条,高频告警需在代码层合并。

自建应用实操(API)

自建应用需要先获取 access_token,再调用发送接口。Token 有效期为 2 小时,建议缓存。

1. 基础配置

自建企微机器人与应用消息推送选型建议是什么

在企业微信管理后台「应用管理」创建自建应用,记录以下信息:

  • CorpID: 企业 ID
  • Secret: 应用密钥(建议存储在环境变量,不要硬编码)
  • AgentID: 应用 ID

2. 获取 access_token

curl 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=YOUR_CORPID&corpsecret=YOUR_SECRET'

返回 JSON 中包含 access_token 字段。

3. 发送消息(curl 示例)

curl 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
  "touser": "UserID1|UserID2",
  "msgtype": "text",
  "agentid": YOUR_AGENTID,
  "text": {
    "content": "业务通知:订单已生成"
  },
  "safe": 0
}'

4. 接收人配置(关键)

自建应用需将接收人纳入应用可见范围,无需用户主动关注。在管理后台「应用」->「可见范围」中添加成员或部门,否则接口会返回错误码 60020。

验证与常见错误

发送一条测试消息,检查手机端企业微信是否收到。对于自建应用,确认接收人是否在可见范围内。

常见错误码及处理:

  • 40003: Secret 错误。检查是否复制完整,注意环境变量是否加载正确。
  • 42001: access_token 过期。重新获取 token 并更新缓存。
  • 60020: 用户不在应用可见范围。去后台添加成员到可见范围。
  • 45015: 响应超时。检查网络或增加重试机制。

安全与最佳实践

  • 密钥管理: Secret 不要提交到代码仓库。推荐使用环境变量,如 export WECOM_SECRET="xxx",代码中通过 os.getenv 读取。
  • Token 缓存: 不要每次发消息都请求 token。将 token 存入 Redis 或内存,过期前主动刷新。
  • 人员离职: 自建应用发送前需确认用户状态,避免接口报错。可定期同步通讯录状态。

参考来源

企业微信开发者文档 - 群机器人 https://developer.work.weixin.qq.com/document/path/91770

企业微信开发者文档 - 自建应用消息发送 https://developer.work.weixin.qq.com/document/path/91771