亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

node打造微信個(gè)人號機(jī)器人

xiaolinbang / 2601人閱讀

摘要:是一款開源的微信個(gè)人號,進(jìn)行了一系列的封裝,提供簡單好用的接口,然后開發(fā)者可以在其之上進(jìn)行微信機(jī)器人的開發(fā)。注意這行代碼實(shí)現(xiàn)了登錄微信個(gè)人號并打印出所收到的消息。大家可以根據(jù)自己的需要定制出強(qiáng)大的個(gè)人微信號機(jī)器人。

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

wechaty(https://github.com/Chatie/wec...)是一款開源的微信個(gè)人號SDK,進(jìn)行了一系列的封裝,提供簡單好用的接口,然后開發(fā)者可以在其之上進(jìn)行微信機(jī)器人的開發(fā)。你可以用它來做很多事:

1)管理和維護(hù)好友;
2)快速有序地處理聊天信息
3)微信群管理
4)實(shí)現(xiàn)自動回復(fù)
5)……

一、快速上手

wechaty 項(xiàng)目主頁寫著 6行代碼創(chuàng)建一個(gè)微信機(jī)器人,那么我們就來試一試。注意: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行代碼實(shí)現(xiàn)了登錄微信個(gè)人號并打印出所收到的消息。

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

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

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

機(jī)器人體驗(yàn)在文末。
示例代碼地址:Github

二、自動通過好友請求

通過前面的示例代碼,可以發(fā)現(xiàn)這個(gè)庫的簡潔強(qiáng)大了吧。接著我們來實(shí)現(xiàn)第一個(gè)小功能:自動通過好友請求

//···
.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")
    }
})
//···

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

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

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

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

三、自動回復(fù)

現(xiàn)在來實(shí)現(xiàn)第二個(gè)小功能:關(guān)鍵詞自動回復(fù)。

//···
.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}`)
    }
    
    // 不處理自己發(fā)的消息
    if (message.self()) {
        return
    }

    if (/JavaScript|Js|js/.test(content)) {
        message.say("關(guān)注公眾號 JavaScript之禪")
    }
})
//···

在上面 我們監(jiān)聽 message 來做消息處理。message 可以接收到所有的消息,我們可以判斷是不是群聊消息、根據(jù)消息回復(fù)相應(yīng)內(nèi)容。如發(fā)送【 js 】將會收到設(shè)置好的消息,實(shí)現(xiàn)自動回復(fù)。

三、自動拉群

前面說到了消息關(guān)鍵詞自動回復(fù),把消息處理和群管理結(jié)合起來,我們就可以實(shí)現(xiàn)根據(jù)關(guān)鍵字自動拉群了

//···
.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("關(guān)注公眾號 JavaScript之禪沒?")
    }
    // 自動拉群
    if (/加群/.test(content)) {
      let keyroom = await Room.find({ topic: "test" })
      if (keyroom) {
        await keyroom.add(contact)
        await keyroom.say("歡迎新朋友!", contact)
      }
    }
})
//···

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

微信個(gè)人號機(jī)器人體驗(yàn):

指令:

自動通過好友請求:加好友時(shí)留言:【JavaScript】或【js】

自動回復(fù):發(fā)送【指令】

自動加群:發(fā)送 【加群】

更多參見官方文檔:https://chatie.io/wechaty

四、總結(jié)

本文通過wechaty實(shí)現(xiàn)了三個(gè)小功能向大家介紹了wechaty這個(gè)庫的基本使用,還有更多功能等著去探索。大家可以根據(jù)自己的需要定制出強(qiáng)大的個(gè)人微信號機(jī)器人。

大家可以關(guān)注我的公眾號,一起玩耍。有技術(shù)干貨也有扯淡亂談,關(guān)注回復(fù)[888]還有意外驚喜領(lǐng)取

左手代碼右手磚,拋磚引玉

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/94602.html

相關(guān)文章

  • 教你如何在低成本、有限的時(shí)間里策劃裂變100社群_怎么做微信防封群

    摘要:如何在低成本有限的時(shí)間里策劃一場合格的裂變活動呢常做裂變的朋友可能回到個(gè)詞裂變系數(shù)投入與產(chǎn)出比。存在成本的裂變活動嗎答案存在。在這條新規(guī)則宣布后,裂變分享率增加到了。優(yōu)點(diǎn)進(jìn)一步驗(yàn)證用戶的朋友圈,防止渾水摸魚。 ...

    BLUE 評論0 收藏0
  • 如何打造一個(gè)令人愉悅的前端開發(fā)環(huán)境(三)

    摘要:的最后一個(gè)大招就是替換一些傳統(tǒng)的服務(wù)端語言,例如,,等,在業(yè)務(wù)層上面使用來開發(fā)服務(wù)端完全不成問題。更多的的使用細(xì)節(jié)和技巧建議關(guān)注美團(tuán)博客大搜車論壇下一篇我們開啟如何結(jié)合和搭建一個(gè)開發(fā)環(huán)境和項(xiàng)目目錄 往期回顧 前面2期都講得是瀏覽器端的東西比較多,包括Webpack,雖然是Node處理的,但是還是瀏覽器端用的多,對于現(xiàn)在的前端開發(fā)來說,不懂一點(diǎn)服務(wù)端的東西,簡直沒辦法活,一般的招聘要求都...

    cgh1999520 評論0 收藏0
  • 2017年1月前端月報(bào)

    摘要:平日學(xué)習(xí)接觸過的網(wǎng)站積累,以每月的形式發(fā)布。年以前看這個(gè)網(wǎng)址概況在線地址前端開發(fā)群月報(bào)提交原則技術(shù)文章新的為主。 平日學(xué)習(xí)接觸過的網(wǎng)站積累,以每月的形式發(fā)布。2017年以前看這個(gè)網(wǎng)址:http://www.kancloud.cn/jsfron... 概況 在線地址:http://www.kancloud.cn/jsfront/month/82796 JS前端開發(fā)群月報(bào) 提交原則: 技...

    FuisonDesign 評論0 收藏0
  • 2017年1月前端月報(bào)

    摘要:平日學(xué)習(xí)接觸過的網(wǎng)站積累,以每月的形式發(fā)布。年以前看這個(gè)網(wǎng)址概況在線地址前端開發(fā)群月報(bào)提交原則技術(shù)文章新的為主。 平日學(xué)習(xí)接觸過的網(wǎng)站積累,以每月的形式發(fā)布。2017年以前看這個(gè)網(wǎng)址:http://www.kancloud.cn/jsfron... 概況 在線地址:http://www.kancloud.cn/jsfront/month/82796 JS前端開發(fā)群月報(bào) 提交原則: 技...

    ivyzhang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<