如何實現微信機器人并提取群聊信息
微信群中常常有大量信息㈧㈨㈩⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂,尤其是學術群❻❼❽❾❿⓫⓬⓭⓮⓯⓰,技術群❣❦❧♡۵,會有很多有用信息⑰⑱⑲⑳⓪⓿❶❷❸❹❺,那么如何做一個微信機器人♀☿☼☀☁☂☄,并提取有效信息然后保存呢☈⊙☉℃℉❅?
本文就微信機器人的創建和信息提取❋❀⚘☑✓✔√☐☒✗✘ㄨ✕✖✖⋆✢✣,做一個簡單介紹
微信機器人實現方式
微信機器人可以通過微信官方接口獲取也可以通過第三方包來實現ⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉ,有一個開源的包叫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技術框架⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓。
9. 如何建設圖書館多媒體電子資源庫✤✥❋✦✧✩✰✪✫✬✭✮✯❂✡★✱✲✳✴?