如果是运维监控或简单告警,直接选群机器人;如果是业务通知需要指定接收人或交互,选应用消息。
先说结论:群机器人适合无状态告警,应用消息适合定向业务通知,两者权限和配置成本不同。
- 适合:群机器人用于运维告警、定时简报;应用消息用于审批提醒、业务状态通知。
- 重点看:是否需要指定具体接收人,以及是否需要用户点击按钮交互。
- 别忽略:应用消息需要用户关注应用或在企业通讯录中,群机器人只需 webhook 地址。
核心机制与权限区别
群机器人本质是一个带密钥的 HTTP 接口,只要拿到 URL 就能发消息,权限局限于所在群,配置成本极低。应用消息则是基于企业身份认证,需要 CorpID 和 Secret,能识别具体用户身份,支持更丰富的消息卡片和交互,但配置相对复杂。
后台配置路径
1. 群机器人配置:
进入企业微信客户端 -> 选择群聊 -> 点击群设置(右上角) -> 群机器人 -> 添加 -> 新建机器人 -> 复制 Webhook 地址。
2. 自建应用配置:
登录企业微信管理后台 -> 应用管理 -> 自建 -> 创建应用 -> 设置可见范围(重要) -> 查看 AgentID 和 Secret。
接口调用示例
群机器人发送测试:
可以用 curl 快速测试 webhook 是否通畅,无需写代码:
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY' -H 'Content-Type: application/json' -d '{"msgtype":"text","text":{"content":"测试消息"}}'应用消息发送测试:
应用消息需要先获取 access_token,再调用发送接口。以下示例假设已获取 token:
curl 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN' -H 'Content-Type: application/json' -d '{"touser":"USER_ID","msgtype":"text","agentid":"AGENT_ID","text":{"content":"测试消息"},"safe":0}'注意:ACCESS_TOKEN 需通过 CorpID 和 Secret 调用接口获取,有效期 2 小时,需自行维护缓存。
效果验证与排查
验证方法:
发送测试请求后,群机器人消息会直接出现在对应群聊中。应用消息会出现在企业微信客户端的“工作通知”对话框中,点击可进入应用主页。
常见坑与排查:
1. Webhook 泄露:群机器人地址泄露会导致他人冒发消息,需定期在群设置中重置密钥。
2. 接收人不可见:应用消息发送失败常因用户不在应用可见范围或未关注应用,需检查后台“可见范围”设置。
3. 频率限制:两者都有频率限制,高频发送需做队列缓冲,避免触发 API 限流。
4. Token 失效:应用消息依赖 access_token,若未缓存或过期会导致发送失败,返回 errcode 40014。
参考来源
企业微信开发者文档 - 群机器人
https://developer.work.weixin.qq.com/document/path/91770
企业微信开发者文档 - 应用消息
https://developer.work.weixin.qq.com/document/path/90236