摘要:是一款開源的微信個人號,進行了一系列的封裝,提供簡單好用的接口,然后開發者可以在其之上進行微信機器人的開發。注意這行代碼實現了登錄微信個人號并打印出所收到的消息。大家可以根據自己的需要定制出強大的個人微信號機器人。
現在,日常生活已經離不開微信,本文將會拋磚引玉演示如何使用wechaty操作微信個人號做一些有意思的東西,可以實現自動通過好友請求、關鍵詞回復、自動拉群等功能。大大提高了社群運營的效率。
wechaty(https://github.com/Chatie/wec...)是一款開源的微信個人號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} ${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// 接收微信消息
機器人體驗在文末。
示例代碼地址: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來講某個群員踢出去。
微信個人號機器人體驗:
指令:
自動通過好友請求:加好友時留言:【JavaScript】或【js】
自動回復:發送【指令】
自動加群:發送 【加群】
更多參見官方文檔:https://chatie.io/wechaty
四、總結本文通過wechaty實現了三個小功能向大家介紹了wechaty這個庫的基本使用,還有更多功能等著去探索。大家可以根據自己的需要定制出強大的個人微信號機器人。
大家可以關注我的公眾號,一起玩耍。有技術干貨也有扯淡亂談,關注回復[888]還有意外驚喜領取
左手代碼右手磚,拋磚引玉
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94602.html
摘要:如何在低成本有限的時間里策劃一場合格的裂變活動呢常做裂變的朋友可能回到個詞裂變系數投入與產出比。存在成本的裂變活動嗎答案存在。在這條新規則宣布后,裂變分享率增加到了。優點進一步驗證用戶的朋友圈,防止渾水摸魚。 ...
摘要:的最后一個大招就是替換一些傳統的服務端語言,例如,,等,在業務層上面使用來開發服務端完全不成問題。更多的的使用細節和技巧建議關注美團博客大搜車論壇下一篇我們開啟如何結合和搭建一個開發環境和項目目錄 往期回顧 前面2期都講得是瀏覽器端的東西比較多,包括Webpack,雖然是Node處理的,但是還是瀏覽器端用的多,對于現在的前端開發來說,不懂一點服務端的東西,簡直沒辦法活,一般的招聘要求都...
摘要:平日學習接觸過的網站積累,以每月的形式發布。年以前看這個網址概況在線地址前端開發群月報提交原則技術文章新的為主。 平日學習接觸過的網站積累,以每月的形式發布。2017年以前看這個網址:http://www.kancloud.cn/jsfron... 概況 在線地址:http://www.kancloud.cn/jsfront/month/82796 JS前端開發群月報 提交原則: 技...
摘要:平日學習接觸過的網站積累,以每月的形式發布。年以前看這個網址概況在線地址前端開發群月報提交原則技術文章新的為主。 平日學習接觸過的網站積累,以每月的形式發布。2017年以前看這個網址:http://www.kancloud.cn/jsfron... 概況 在線地址:http://www.kancloud.cn/jsfront/month/82796 JS前端開發群月報 提交原則: 技...
閱讀 3952·2021-11-18 13:21
閱讀 4759·2021-09-27 14:01
閱讀 3110·2019-08-30 15:53
閱讀 2388·2019-08-30 15:43
閱讀 1730·2019-08-30 13:10
閱讀 1508·2019-08-29 18:39
閱讀 887·2019-08-29 15:05
閱讀 3340·2019-08-29 14:14