正文
做微信机器人的群聊自动化时,创建微信群几乎是绕不开的第一个接口。最近在对接WTAPI 微信机器人接口的建群能力(/finder/v2/api/group/createChatroom)时,踩了几个小坑,整理成这篇笔记,方便做微信个人号二次开发的同学参考。
先看入参,其实非常简单:
appId:当前登录设备的实例 ID;wxids:要拉进群的好友 wxid 数组。
最容易被忽略的一条规则是:wxids 至少要有两个元素。这不是接口的限制,而是微信客户端本身的建群规则——只拉一个人不叫"群",单聊即可。所以在组装参数前,一定要在业务层先判断数组长度,不足两人直接拦截,不要把无效请求发到微信 API。
建群成功后返回两个字段:
chatroomId:群 ID,后缀为@chatroom;headImgBase64:系统生成的默认群头像。
其中chatroomId是整个群生命周期的主键,后续往群里发送文字消息、邀请成员、踢人、改群名、设置群公告,全部都要带上它。建议建群成功的瞬间就把它和 appId、初始成员、创建时间一起写入本地数据库,并给群打上业务标签,不然后期群一多根本无法区分。
调用示例
Unirest.setTimeouts(0,0);HttpResponse<String>response=Unirest.post("https://wx.chuapi.com/finder/v2/api/group/createChatroom").header("X-finder-TOKEN","").header("Authorization","Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjAxNmM2ZDQ5LWIxNWMtNGRjMy05YzQzLWZmYzZmNDhhMTg3MyJ9.1JWq9ntjam20_XDlSbklWTxbV-vg-F_dY1LYVX05BndRAuaJbv3iSwoDY-BuMwe1sdKxDXtDTMWJgXNMff4nOg").header("Content-Type","application/json").body("{\n \"appId\": \"wx_e2PiMSX8ySDV6tQGroCDc\",\n \"wxids\": [\n \"wxid_v5z9pqicwzlv22\",\n \"xuan588888888\"\n ]\n}").asString();对接过程中重点注意这几点:
- 只能拉好友建群。wxids 里如果混入了陌生人或已删除的好友,请求会失败。批量建群前,先用通讯录数据校验好友关系。
- 建群是高敏感操作。不要循环高频调用,建议每次建群之间加随机间隔,并设置单日建群上限;一旦返回限制类错误码,立即熔断暂停,避免影响账号登录状态。
- 建群不等于群配置完成。新群默认名称是成员昵称拼接,正式使用前通常还要串行调用修改群名、群公告等接口,注意每一步都要判断上一步是否成功。
- 群头像按需存储。返回的是 base64,体积不小,如果后台不需要展示默认头像,可以不存,等群头像更新后再拉取。
- 结果要可追溯。建议记录每次建群请求的成员列表和返回结果,方便排查"群建了但成员没进全"这类问题。
小结
创建微信群接口调用本身没有难度,真正考验的是参数前置校验、chatroomId 的及时落库以及建群节奏的控制。把好友校验、限流熔断、建群后初始化这三步做扎实,微信机器人的群聊自动化链路就有了稳定的开头。