微信机器人 API 开发:发送文字消息接口与群内 @ 功能详解
正文
在微信机器人的所有消息能力里,发送文字消息是最基础、也是使用频率最高的一个接口。无论是做微信自动化的关键词回复、通知推送,还是群内互动,最终都绕不开它。本文记录 WTAPI 微信机器人接口 中 发送文字消息 接口(postText)的对接思路。
接口地址为 /finder/v2/api/message/postText,采用 HTTP POST 方式调用,属于 微信个人号二次开发 的消息模块。
入参共四个字段:
appId:设备实例 ID,登录成功后获取;toWxid:接收方 ID,发送给好友填 wxid,发送到群聊填 chatroom ID;content:文字消息内容;ats:可选字段,用于群聊中 @ 好友,多个 wxid 用英文逗号分隔。
调用示例
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://wx.chuapi.com/finder/v2/api/message/postText")
.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 \"toWxid\": \"wxid_tyyu4v9ykz3712\",\n \"content\": \"你好WT\"\n}")
.asString();
这里需要重点说一下 群内 @ 机制,这也是该接口最容易出错的地方。在群里 @ 某个人时,光在 ats 里传对方 wxid 还不够,content 文本中必须包含 @昵称 内容,两者配合才能在微信端正确显示为 @ 效果。简单说,ats 负责告诉系统被 @ 的是谁,content 负责让消息文本里出现对应的 @ 展示。
如果需要 @ 全体成员,ats 字段填写固定值 notify@all 即可,但要注意权限限制:只有群主或管理员身份才能成功 @ 全员,普通成员调用会无效。
返回结果中,data 包含 toWxid(接收方)、createTime(发送时间戳)、msgId 和 newMsgId(消息标识)、type(消息类型,文字消息为 1)。其中 newMsgId 建议入库保存,后续做消息撤回、防重、状态追踪时都要用到。
实际开发建议有三点:第一,对接 微信接口 要控制发送频率,尤其是群发场景,加入随机间隔能降低风控风险;第二,文本内容较长或包含特殊字符时,注意编码和转义处理;第三,@ 多人场景建议先从通讯录接口拿到准确昵称,保证 content 中的 @ 文本与微信实际昵称一致。
小结
发送文字消息接口虽然是 微信 API 里最入门的一个,但群 @ 逻辑(ats 与 content 配合、notify@all 权限)是关键细节。把单聊、群聊、@ 指定人、@ 全员这几种情况都处理好,微信机器人的文字交互能力就完整了。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)