昨天晚上没事干突然想开发一个属于自己的微信机器人,但我这个菜鸡对这种技术根本一窍不通,但很快我就在搜索引擎里找到了wechaty这个开源框架。
介绍
Wechaty是一款适用于Chatbot Makers的现代会话 RPA SDK,可以用几行代码创建一个bot。
Wechaty提供了开箱即用的支持,可以将您的IM帐户转变为聊天机器人,从而为您提供期望的通用功能,开发人员可以轻松地对其进行自定义和扩展,以创建满足其确切需求的聊天机器人。
本篇文章运行环境node版本为16.9.0
6行代码搭建一个机器人
据说这个框架使用6行代码就可以搭建出一个微信聊天机器人,说实话我有点不信,就开始翻文档(google)
首先创建一个node项目
npm init
在创建出来的package.json文件里添加配置文件
"dependencies": {
"wechaty": "^1.10.4",
"wechaty-puppet-wechat": "^1.10.5"
}
添加依赖:
npm install
创建index.js并添加6行代码:
import { WechatyBuilder } from 'wechaty'
WechatyBuilder.instance() // Singleton
.on('scan', (url, code) => console.log(`Scan QR Code to login: ${code}\n${url}`))
.on('login', user => console.log(`User ${user} logined`))
.on('message', message => console.log(`Message: ${message}`))
.start()
运行index.js
node index.js
打开控制台的二维码,拿出手机扫码登录桌面端微信即可。
在终端打印二维码
安装依赖
npm install qrcode-terminal --save
修改onScan代码:
function onScan (qrcode, status) {
if (status === ScanStatus.Waiting || status === ScanStatus.Timeout) {
console.log(
`Scan QR Code to login: ${status}\nhttps://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(
qrcode
)}`
);
qrcodeTerminal.generate(qrcode);
}
}
保存并且运行。
收发消息和业务实现
在onMessage方法里,获得收到的消息,在这里处理业务代码。
可以开发的功能包括:
- 消息处理:关键词回复
- 群管理:自动入群,拉人,踢人
- 自动处理好友请求
- 智能对话:通过简单配置,即可加入智能对话系统,完成指定任务
- … 请自行开脑洞
总结
wechaty还是比较强大的框架,api也比较简洁易懂,基本上需要的功能都有办法能够实现,玩了一天感觉自己不是很需要,就没有再开发下去。项目上传到了码云:项目地址