国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

node打造微信個人號機器人的方法示例

2024-05-06 16:43:55
字體:
來源:轉載
供稿:網友

現在,日常生活已經離不開微信,本文將會拋磚引玉演示如何使用 wechaty 操作微信個人號做一些有意思的東西,可以實現自動通過好友請求、關鍵詞回復、自動拉群等功能。大大提高了社群運營的效率。

wechaty( https://chatie.io/wechaty/)是一款開源的微信個人號SDK,進行了一系列的封裝,提供簡單好用的接口,然后開發者可以在其之上進行微信機器人的開發。你可以用它來做很多事:

1)管理和維護好友; 2)快速有序地處理聊天信息 3)微信群管理 4)實現自動回復 5)……

一、快速上手

wechaty 項目主頁寫著 6行代碼創建一個微信機器人,那么我們就來試一試。 注意:Node.js version >= 8.5

The World's Shortest ChatBot Code: 6 lines of JavaScript

const { Wechaty } = require('wechaty')Wechaty.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()

這6行代碼實現了登錄微信個人號并打印出所收到的消息。

wechaty 可以通過Docker和NPM兩種方式運行,本文使用npm方式

node bot.js 啟動這個個人號機器人,這時命令行會打印出一個鏈接,我們將它在瀏覽器中打開可以看到這是個二維碼,掃碼即可登錄(注:2017年年底隨著微信逐步關停微信網頁版登錄支持,之后后注冊的微信號不支持網頁微信的登錄。老夫花了105RMB買了個號來用,心疼我的錢包3秒鐘)

User Contact<劉星> logined // 掃碼登錄Message: Message<JavaScript之禪> // 接收微信消息

機器人體驗在文末。 示例代碼地址: Github

二、自動通過好友請求

通過前面的示例代碼,可以發現這個庫的簡潔強大了吧。接著我們來實現第一個小功能:自動通過好友請求

//···.on('friend', async (contact, request) => {if (request) {if (/JavaScript|JS/i.test(request.hello)) {logMsg = 'accepted because verify messsage is "JS之禪"'request.accept()} else {logMsg = 'not auto accepted, because verify message is: ' + request.hello}} else {logMsg = 'friend ship confirmed with ' + contact.get('name')}})//···

這里我們通過監聽 friend 事件??梢垣@取到誰發了什么好友請求。這里我們驗證了添加好友時的請求,在收到好友請求內容為【 JS 】或者【JavaScript】時 就會自動通過好友請求了。

每次都復制鏈接到瀏覽器打開二維碼在掃碼一點兒都不方酷也不方便在服務器上使用。這時我們可以用 qrcode-terminal 這個包 直接在命令行中打印出二維碼。

//···const QrcodeTerminal = require('qrcode-terminal')//···.on('scan', (url, code) => {let loginUrl = url.replace('qrcode', 'l')QrcodeTerminal.generate(loginUrl)console.log(url)})//···

再運行 node bot.js 命令行將直接打印出二維碼,方便了很多。

三、自動回復

現在來實現第二個小功能:關鍵詞自動回復。

//···.on('message', async (message) => {const contact = message.from()const content = message.content()const room = message.room()if (room) {console.log(`Room: ${room.topic()} Contact: ${contact.name()} Content: ${content}`)} else {console.log(`Contact: ${contact.name()} Content: ${content}`)}// 不處理自己發的消息if (message.self()) {return}if (/JavaScript|Js|js/.test(content)) {message.say('關注公眾號 JavaScript之禪')}})//···

在上面 我們監聽 message 來做消息處理。message 可以接收到所有的消息,我們可以判斷是不是群聊消息、根據消息回復相應內容。如發送【 js 】將會收到設置好的消息,實現自動回復。

四、自動拉群

前面說到了消息關鍵詞自動回復,把消息處理和群管理結合起來,我們就可以實現根據關鍵字自動拉群了

//···.on('message', async (message) => {const contact = message.from()const content = message.content()const room = message.room()if (room) {console.log(`Room: ${room.topic()} Contact: ${contact.name()} Content: ${content}`)} else {console.log(`Contact: ${contact.name()} Content: ${content}`)}if (message.self()) {return}if (/JavaScript|Js|js/.test(content)) {message.say('關注公眾號 JavaScript之禪沒?')}// 自動拉群if (/加群/.test(content)) {let keyroom = await Room.find({ topic: 'test' })if (keyroom) {await keyroom.add(contact)await keyroom.say('歡迎新朋友!', contact)}}})//···

上面的代碼通過 Room 來操作群聊。 此時回復 【加群】即可被自動拉入群中。當然了,我們還可以做得更多如使用 Room.del 來講某個群員踢出去。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴国县| 宜黄县| 连城县| 富民县| 泗水县| 兰溪市| 汝阳县| 乐东| 禹城市| 邓州市| 若尔盖县| 霍林郭勒市| 准格尔旗| 迁安市| 改则县| 榆中县| 花莲市| 凤山县| 平阳县| 喀喇| 孟津县| 堆龙德庆县| 鸡东县| 南平市| 普格县| 鄂伦春自治旗| 稷山县| 延吉市| 西乌| 九龙城区| 梅河口市| 江安县| 抚顺县| 禄劝| 公主岭市| 论坛| 光山县| 甘肃省| 鹤岗市| 六安市| 资溪县|