如何实现微信机器人并提取群聊信息
微信群中常常有大量信息,尤其是学术群,技术群,会有很多有用信息,那么如何做一个微信机器人,并提取有效信息然后保存呢?
本文就微信机器人的创建和信息提取,做一个简单介绍
微信机器人实现方式
微信机器人可以通过微信官方接口获取也可以通过第三方包来实现,有一个开源的包叫Wechaty,官方网址是 https://wechaty.js.org/zh/docs/
我们可以借助这个包,实现微信的通讯,具体思路如下:
1. 引入wechaty,启动机器人
2. 微信扫描登录,qrcode-terminal生成二维码
3. 监听消息,提取有用信息
4. 保存消息到本地,积累到一定数目,通过ajax发送服务器存储
具体的代码如下:
const { WechatyBuilder} = require("wechaty"); class Bot { // 机器人类 bot = null; constructor() { this.bot = WechatyBuilder.build(); // 新建机器人对象 this.bot.on("scan", (code) => { // 生成登陆二维码 qrcode.generate(code, { small: true }); }); this.bot.on("message", this.onMessage.bind(this)); // 绑定监听微信消息事件 this.bot.start(); // 开启该机器人 } async onMessage(message) { // 监听消息回调函数 const talker = message.talker(); // 发送消息的联系人 const room = message.room(); // 发送消息的群组 if (talker.payload.type != 1) return; // 对话用户类型限制 if (message.payload.type != 7) return; // 消息内容非文本 ... const text = await message.mentionText(); // 消息内容 ... await talker.say(text); // 在私聊中发送消息 ... const topic = await room.topic(); // 群名 await room.say(image); // 在群组中发送消息 ... } } (async () => { dotenv.config(); try { new Bot(); // 启用一个机器人 } catch (e) { console.error(e); } })();
通过以上代码,就可以实现一个微信机器人,然后把这个微信机器人加入群聊,就能提取群里的信息,保存到对应后台数据库。
当然,代码是NodeJS的,所以最好用pm2来启动和管理。微信机器人本质是要一个用户的,比如自己的微信账号作为机器人,可以加好友,发朋友圈等等,所以,登录也是一样,要用一个微信扫描登录,下面就是登录的截图,扫描登录,该账号就是微信机器人账号了,参考下图:
结论
当然微信机器人只提取消息,会显得功能比较弱,后续可以对接更多服务,实现客服机器人、数据标引等功能。
Wechaty本身也有一个第三方的插件贡献计划,可以访问这里
https://github.com/wechaty/plugin-contrib
原创不易,转载请注明出处!
更多资料,请参考我们之前的文章:
2. 如何基于开源的Photo Sphere Viewer 框架开发360/720全景VR(一)?
3. 全景沉浸式Web VR制作中如何选择全景相机 (2023版本)
5. WebVR哪个框架好?WebVR开发框架的技术选型,360VR技术框架。