微信助手是很常见的运营工具,不仅能够给微信群带来活跃度,还能针对各种社群开发不同的玩法。 本目标是做一个文件传输助手,当群内有人@机器人并say关键词时,机器人从已有文件业务系统中找到文件并发出;同时在群中直接发送一个文件,机器人可将文件自动上传至文件业务系统。
以下是我的开发过程
1、微信官方并没有相关的 API。可能要考虑考虑企业微信?结果发现企业微信有群机器人,但完全无法满足我的需求,企业微信就排除了。
2、找了很多基于 Web 版微信的各种开源方案,但是对文件的支持基本为0。同时还存在很多账号登不了 Web 版微信的情况,找了官方文档,无法解决,放弃。
3、偶然间在github上看到了wechaty框架 对这个简单上手,实用性高的框架爱不释手,于是决定立即开展。但是有发现,iPad 协议,虽然需要付费获取 token,但是可以申请参与开源激励计划来获取免费甚至长期有效的 token。
使用wechaty收发消息
在 Wechaty 中,不同的 Puppet 对应不同的协议。Wechaty 还有不同语言的 SDK,以及 demo template repository,对开发者非常友好,开发者参与度也很高。 github上已经开源了非常多成功的案例,具体细节就不在详述,只介绍关键部分,如下。
首先需要初始化一个 bot: 1、install Wechaty 老实说,install Wechaty我还是花了一些时间的,老是npm错误。后面发现是vs_BuildTools安装不上,原来是已经有了底版本的。需要先卸载。好在后面处理好了,不然就卡住了。
2、初始化bot,绑定事件函数,这里只需要onScan和onMessage两个事件就行
// create a Wechaty instance as bot
const puppet = new PuppetPadplus({
token: ipadToken
})
let bot = new Wechaty({
puppet, name: 'getFile'});
bot.on('scan', onScan);
bot.on('message', onMessage);
bot
.start()
.then(() => {
console.log('开始登陆微信');
})
.catch(async function(e) {
console.log('初始化失败: ${e}.')
await bot.stop()
process.exit(1)
});
3、onScan事件 由于申请的是 iPad 协议的 token,这里用到的是 PuppetPadplus。 接着对 bot 绑定各种事件的处理函数,其中 message 事件是接收到消息时触发的事件。
async function onScan(qrcode, status) {
Qrterminal.generate(qrcode)
console.log('扫描状态'<

本文介绍了如何使用wechaty-puppet-padplus框架开发一个微信文件传输助手。当群内成员@机器人并触发关键词时,机器人能自动从文件系统中发送文件,反之则将接收到的文件上传至系统。在尝试了各种方案后,作者选择了wechaty,因其易用性和丰富的社区支持。
最低0.47元/天 解锁文章
2132

被折叠的 条评论
为什么被折叠?



