最近在搞微信机器人的东西,想必很多人都听过,那些有女朋友的程序员有的也会给自己女朋友定制一个微信机器人,给机器人接上一些有趣的接口,啥土味情话,天气预报就都上来了,确实很有趣,就找了时间研究一下。
wechaty是一个微信机器人的工具包,他会为你提供一系列的功能,包括收发信息,建群,群内加好友,自动通过好友申请等,开发微信机器人一般用的都是这个,这个没啥好说的,基本上看文档就知道怎么做了。
puppet就是wechaty用来操控微信的东西,就像puppeteer一样,只不过操控微信不像puppeteer那么简单,他有好多个版本,下面就简单介绍一下各个版本的区别。
我试了那么多个来看最强的版本应该是puppet-service,这个就是用平板的微信版本进行操控,功能也最为齐全,但是这个版本的需要token,就是要给钱,他的原理应该是别人在服务器上模拟平板的微信,你通过一个token访问到他的服务器上,登录微信,使用api接口进行通信,别人因为有服务器的开销所以会要你给钱,具体别人怎么做的不清楚,别人研究出来卖钱的东西。
puppet-wechat 这个版本是免费的,相应的功能也少,能够收发信息,但是能够发的信息类型只有文字和文件,这个版本内部用的是网页版微信进行操控,扫码登录,那些无法登录微信网页版的微信号现在也能够正常使用这个版本,需要开启一个uos选项
WechatyBuilder.build({
name: 'wechat-bot',
puppet: 'wechaty-puppet-wechat',
puppetOptions: {
uos: true, // 开启这个选项后无法登录微信网页版的微信号也能正常登录
head: false
},
})
puppet-xp版本是使用pc版微信去操控的,功能和puppet-wechat差不了太多,但是这个版本能够拿到微信唯一id,如果是用来做客服之类的功能,使用这个版本我认为是最好的,但是也有局限性,只能使用Windows WeChat 3.3.0.115版本进行开发。收发消息也和puppet-wechat版本一样,只支持文字和图片。但是经过一系列深扒源码不断地试验发现,这个版本其实还能发小程序和链接卡片,但是这块要实现的话就得改puppet-xp包的源码了,这块有时间再写一篇来说说。
上面提到的那些木偶版本目前来说都是能用的,根据需求而定吧。底层的逻辑我觉得才是最值得注意的地方,web版的木偶是直接调用微信接口完成各类动作的,pc版本的木偶是通过往微信里面挂一个dll直接调用微信的方法去实现的。第一个web版本其实微信官方完全可以堵住,第二个pc版因为用的是旧版的微信可能堵截起来就比较困难了,我觉得这种东西是带有一定的危险性的,有心之人很容易利用这种东西,至于用来干嘛那就不得而知了。