企业微信二次开发:外部群机器人文本消息发送实践
搞企微外部群机器人文本消息下发绝对是出场率最高的动作。不管是新客户进群自动触发欢迎语、每天定时推送业务早报还是对接 AI 大模型实现社群自动答疑全都要靠这个最基础的接口来兜底。今天咱们不聊虚的架构直接翻开底层协议手把手教你怎么把一段文字精准推送到指定的外部客户群里。瞄准靶心拿到目标群聊ID你要向群里发消息第一步得先有个明确的“收件地址”。企业微信的底层网关是不认识诸如“VIP售后1群”这种中文名字的它只认由系统生成的群唯一标识。通常你有两种途径拿到它被动监听通过 Webhook 回调监听群内的聊天或进群事件从报文中提取ChatId。主动拉取调用“获取外部群列表”接口遍历拿到目标群的 ID。拿到这个类似wr_xxxxxxxxxxxxxxxxxxxx格式的字符串后先把它存进变量里备用。组装 JSON 报文准备开火发消息的本质就是向业务网关发起一个带有特定请求头的 HTTP POST 请求。为了确保字段万无一失写代码前建议先查阅官方的字段规范。来看一个标准的纯文本消息载荷JSON{ instance_guid: inst_xxxxxxxxxxxx, conversationId: wr_xxxxxxxxxxxxxxxxxxxx, msgtype: text, text: { content: 大家好我是本群的专属技术客服\n如有任何API对接问题欢迎随时在群内提问。 } }关键参数踩坑点conversationId这里填入你刚才拿到的群聊 ID。msgtype必须死死写成text。content你的消息正文。注意如果你想在消息里换行不要用 HTML 的br必须使用标准的转义字符\n。高阶玩法如何在群里精准 客户在外部客户群里做自动答疑如果机器人只是干巴巴地把答案扔出来提问的客户很容易漏看。我们通常需要机器人像真人一样带上提问者的标识。实现这个功能非常简单不需要在content里面硬拼客户名字。你只需要在 JSON 的text对象里加上一个mentioned_list提醒列表字段并把目标客户的 ID 扔进去即可JSON{ instance_guid: inst_xxxxxxxxxxxx, conversationId: wr_xxxxxxxxxxxxxxxxxxxx, msgtype: text, text: { content: 您的接口配额已刷新请登录后台查看。, mentioned_list: [wm_xxxxxxxxxxxxxxxxxxxx] } }把这段 JSON 发出去企微客户端就会自动将该客户的昵称高亮显示为蓝色的客户名并给他的手机弹送一条强提醒。研发效率与排错建议1. 告别代码盲写先上工具联调遇到接口报错比如 400 参数格式错误千万别在几千行的业务代码里找 Bug。直接把官方 API文档 导入到 Apifox 等结构化测试工具中。把你写的这串 JSON 丢进去跑一次。工具里能发出消息就说明是你的后端代码在序列化 JSON 时出了偏差比如少了引号、转义失败。2. 敬畏风控别做“群轰炸机”文本消息接口虽然调用简单但千万不要写个死循环去群里做毫无意义的刷屏。频繁的无用下发极易触发企业微信的安全风控机制导致你的机器人账号被限制甚至直接踢下线。如果是推送业务通知建议做好频率控制如加入 Redis 漏桶限流。理清了上面这些结构和限制外部群的文本发送就是一层窗户纸。把文本发通了后续再换成发图片、发小程序也就是改个msgtype的事了。如果在参数组装上遇到奇葩报错欢迎在评论区贴出 JSON 一起交流