微信机器人三种实现方式
- RPA - 就是进阶版的按键精灵(略)
- web版本协议 - 缺点是没有固定的用户id,没法做复杂的业务逻辑。
- 逆向版 - 需要挂一个电脑版客户端, 通过逆向技术拦截微信的收发行为。
本文主要讨论第三种方案。
技术选型
github上有很多机器人项目, 但是真正开源的不好找,更多的是空壳项目。
这里选用 wechaty puppet-xp github.com/wechaty/pup...
这是一个真正的开源实现,运行简单,文档友好。
限制和不足
- 微信用户和公众号小程序的openid无法打通,生态无法融合。
- puppet-xp对小程序的支持不好,想发送小程序只能用文字或者图片。
- puppet-xp无法踢人,无法做深度的群管理功能
- 加好友,群邀请,删除好友等功能均不支持
开发功能前先到github确认协议的功能支持。
用途
开源协议的完成度不能要求太高,好处是遇到问题可以在issues里查,尽管支持有限,但还是可以做很多的功能。
- 智能客服
- 文生图(类似mj,用户发文字, 机器人返回生成图片)
- 群发言统计
- 群邀请统计
- 群积分
- 定时发送
- 入群欢迎语
从零开始
发送 ping
到机器人, 自动回复 pong
- node.js 的开发环境
css
npm i wehcaty
npm i wechaty-puppet-xp
安装固定版本的微信 WeChatSetup-3.9.2.23
- index.js 编写
vbnet
const Wechaty = require("wechaty");
const { PuppetXp } = require("wechaty-puppet-xp")
const { WechatyBuilder } = Wechaty;
const bot = WechatyBuilder.build({
puppet: puppet,
name: "bot",
})
bot.on("message", async (msg) => {
let text = msg.text();
if (text == "ping") {
await msg.say("pong");
}
})
bot.start()
3 node index.js
运行即可