参加了wechaty社区的暑期2020,遂使用wechaty写一个机器人。
我本以为这不是一件特别难的事情……事实上也并没有很难,在我这种语法不熟,英语垃圾,一片迷茫的前提下,还是通过wechaty的文档和前人的开发经验完成了自己的wechaty。
在开发过程中还是遇到了一些问题,在这里总结一下。
首先是安装wechaty以后也要记得安装二维码的包……否则终端没有二维码。(这个应该也可以把二维码地址输出到控制台,然后用浏览器打开扫描)
在添加好友验证的时候,通过好友验证速度太快,发送请求的账号好友列表里面还没这个新好友……但是这个好友列表里面是有请求者的。然后我做了一个自我介绍,这样请求者的好友列表就正常了(我也不知道为啥)。
在加好友验证的时候,我需要一个bot.Contact来帮我查找这个人,但是传递到friend里面的只有friendship参数。我参考了一个作者的写法是传递参数的时候传递一个bot过去,后来又修改成export bot,然后在另一个文件中require引入。(这其中我还碰到了import和require的问题,export和module.export以及export default的问题……最后也没成功解决)
接着碰到的问题就是我要通过请求后在friend类里面的id来找到Contact里面的这个请求用户,一开始我误以为是find,后来查阅官方文档发现find只能通过name或者alias,通过contactId来查找应是load。
最后最后我添加了axios插件,增加一个智能聊天接口,帮助机器人完成时时陪聊的功能……
前期准备:
npm init
npm install wechaty
npm install wechaty-puppet-padplus
npm install --save qrcode-terminal
项目结构
其中JOE.memory-car.json是自动生成的
并且我并不喜欢在config中放置太多东西,感觉阅读起来很麻烦。
index.js:
```javascript
const {
Wechaty } = require("wechaty"); // Wechaty核心包
const {
PuppetPadplus } = require("wechaty-puppet-padplus"); // padplus协议包
const Qrterminal = require("qrcode-terminal");//二维码包
const bot = new Wechaty({
puppet: new PuppetPadplus({
token: 'puppet_padplus_dd54e2b49f8b4217'
}),
name: 'JOE'
})
module.exports= bot
//const onRoomJoin = require("./onRoomJoin")
const message = require("./Message")
const friendShip