企业微信机器人无法全局绑定后选择群聊,必须在目标群聊内添加机器人来获取独立的 Webhook 地址。每个群聊的机器人 Webhook 地址唯一,向该地址发送 HTTP 请求即可实现定向消息推送。
先说结论:企业微信群机器人与群聊是一一对应关系,不存在“一个机器人绑定多个群”的配置,需在每个目标群内单独添加机器人获取专属 Webhook。
- 适合场景:内部系统报警、定时任务通知、审批结果推送等需要直达特定群聊的场景。
- 先看权限:操作者必须是群主或群管理员,且群聊类型支持添加机器人(内部群)。
- 建议验收:发送测试消息后,确认目标群聊收到消息且 Webhook 地址未泄露给无关人员。
快速处理思路
不需要编写复杂脚本,直接在企业微信客户端操作即可获取推送地址。
1. 进入目标群聊 -> 点击右上角菜单 -> 添加群机器人
2. 新建机器人 -> 复制 Webhook 地址
3. 使用 HTTP POST 请求向该地址发送 JSON 数据为什么会这样
企业微信机器人采用 Webhook 机制,地址中包含了群聊 ID 和密钥信息。
这种设计确保了消息只能推送到生成该 Webhook 的特定群聊,防止消息误发到其他群组。每个群聊内添加的机器人实例独立,即使名称相同,其 Webhook 地址也不同,因此实现了天然的定向推送隔离。
分步处理
按照以下步骤完成机器人添加和消息发送配置。
步骤 1:在目标群聊添加机器人
进入需要接收消息的企业微信群聊,点击右上方菜单,选择“添加群机器人”。点击“新建”,设置机器人名称(如“告警助手”),勾选协议后点击添加。复制生成的 Webhook 地址,该地址格式通常包含 key 参数。
步骤 2:构造发送请求
使用 curl 或代码发起 HTTP POST 请求,Content-Type 必须为 application/json。以下是发送文本消息的示例:
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY' -H 'Content-Type: application/json' -d '{"msgtype":"text","text":{"content":"测试消息:定向推送成功"}}'步骤 3:管理多个群聊推送
如果需要向多个群聊推送相同消息,需在代码中维护多个 Webhook 地址列表,循环发送请求。不要尝试将一个群的 Webhook 用于另一个群,否则接口会返回错误。
怎么验证是否生效
发送请求后,观察目标群聊是否立即收到机器人消息。
检查接口返回状态码,HTTP 状态码为 200 且返回 JSON 中 errcode 为 0 表示发送成功。如果群内未收到消息但接口返回成功,检查机器人是否被移出群聊或消息内容触发拦截规则。
常见坑
- Webhook 地址泄露:该地址包含密钥,任何人拿到均可向群内发消息,不要提交到公共代码仓库。
- 频率限制:官方文档规定每个机器人每分钟最多发送 20 条消息,超过限制会触发限流报错。
- 群类型限制:外部群或部分特定类型的群聊可能不支持添加机器人,仅限企业内部群使用。
- 机器人被删:如果在群聊中移除了机器人,对应的 Webhook 地址立即失效,需重新添加获取新地址。
常见问题
一个机器人可以同时推送到多个群吗?
不能直接使用同一个 Webhook 地址推送到多个群。需在每个群内分别添加机器人,获取不同的 Webhook 地址,然后在程序中循环调用这些地址。
机器人推送消息失败常见原因是什么?
常见原因包括 Webhook 地址错误、请求方法不是 POST、Content-Type 不是 application/json、消息内容包含敏感词或超过频率限制。
如何修改机器人名称?
在群聊机器人管理界面可以修改展示名称,但修改名称不会改变 Webhook 地址,原有地址可继续使用。
参考来源
- 企业微信开发者文档,群机器人文档,https://developer.work.weixin.qq.com/document/path/91770