最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node打造微信個(gè)人號(hào)機(jī)器人的方法示例

 更新時(shí)間:2018年04月26日 08:32:37   作者:流口水流  
這篇文章主要介紹了node打造微信個(gè)人號(hào)機(jī)器人的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

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

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

1)管理和維護(hù)好友; 2)快速有序地處理聊天信息 3)微信群管理 4)實(shí)現(xiàn)自動(dòng)回復(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]\n${url}`))
.on('login', user => console.log(`User ${user} logined`))
.on('message', message => console.log(`Message: ${message}`))
.start()

這6行代碼實(shí)現(xiàn)了登錄微信個(gè)人號(hào)并打印出所收到的消息。

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

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

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

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

二、自動(dòng)通過好友請求

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

//···
.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í) 就會(huì)自動(dòng)通過好友請求了。

每次都復(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 命令行將直接打印出二維碼,方便了很多。

三、自動(dòng)回復(fù)

現(xiàn)在來實(shí)現(xiàn)第二個(gè)小功能:關(guān)鍵詞自動(dòng)回復(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)注公眾號(hào) JavaScript之禪')
}
})
//···

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

四、自動(dòng)拉群

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

//···
.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)注公眾號(hào) JavaScript之禪沒?')
}
// 自動(dòng)拉群
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)拉入群中。當(dāng)然了,我們還可以做得更多如使用 Room.del 來講某個(gè)群員踢出去。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • node.js項(xiàng)目如何創(chuàng)建websocket模塊

    node.js項(xiàng)目如何創(chuàng)建websocket模塊

    這篇文章主要介紹了node.js項(xiàng)目如何創(chuàng)建websocket模塊問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • node.js ws模塊搭建websocket服務(wù)端的方法示例

    node.js ws模塊搭建websocket服務(wù)端的方法示例

    這篇文章主要介紹了node.js ws模塊搭建websocket服務(wù)端的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-04-04
  • npm與nrm兩種方式查看源和切換鏡像詳解

    npm與nrm兩種方式查看源和切換鏡像詳解

    nrm(npm registry manager )是npm的鏡像源管理工具,它可以快速在讓你在本地源之間切換,下面這篇文章主要給大家介紹了關(guān)于npm與nrm兩種方式查看源和切換鏡像的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 前端node Session和JWT鑒權(quán)登錄示例詳解

    前端node Session和JWT鑒權(quán)登錄示例詳解

    關(guān)于前端鑒權(quán)登錄是比較常見的需求了,本文將從服務(wù)端渲染和前后端分離的不同角度下演示鑒權(quán),為大家介紹前端node Session和JWT鑒權(quán)登錄示例詳解
    2022-07-07
  • node.JS二進(jìn)制操作模塊buffer對(duì)象使用方法詳解

    node.JS二進(jìn)制操作模塊buffer對(duì)象使用方法詳解

    在ES6引入TypedArray之前,JavaScript語言沒有讀取或操作二進(jìn)制數(shù)據(jù)流的機(jī)制,本文為大家詳細(xì)介紹nodeJS中二進(jìn)制操作模塊buffer對(duì)象使用方法詳解
    2020-02-02
  • 基于node下的http小爬蟲的示例代碼

    基于node下的http小爬蟲的示例代碼

    本篇文章主要介紹了基于node下的http小爬蟲的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • 如何使node也支持從url加載一個(gè)module詳解

    如何使node也支持從url加載一個(gè)module詳解

    這篇文章主要給大家介紹了關(guān)于如何使node也支持從url加載一個(gè)module的相關(guān)資料,文中通過示例代碼將實(shí)現(xiàn)的方法介紹非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧
    2018-06-06
  • Ubuntu 16.04 64位中搭建Node.js開發(fā)環(huán)境教程

    Ubuntu 16.04 64位中搭建Node.js開發(fā)環(huán)境教程

    如果想要在Ubuntu 16.04上安裝Node.js的話,這篇文章對(duì)你來說肯定很重要。Node.js從本質(zhì)上來說就是一個(gè)運(yùn)行在服務(wù)端上的封裝好了輸入輸出流的javascript程序。本文給大家詳細(xì)介紹了在Ubuntu 16.04 64位搭建Node.js開發(fā)環(huán)境的步驟,有需要的朋友們可以參考學(xué)習(xí)。
    2016-10-10
  • node.js入門學(xué)習(xí)之url模塊

    node.js入門學(xué)習(xí)之url模塊

    最近在學(xué)習(xí)nodejs,知道了如何用nodejs創(chuàng)建一個(gè)簡單的小項(xiàng)目。例如如何創(chuàng)建一個(gè)服務(wù)器啦,例如http.createServer,還有根據(jù)不同的請求路徑來設(shè)置路由選擇啦,模塊引入,創(chuàng)建模塊啦,下面這篇文章主要介紹了node.js中url模塊的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • NodeJs測試框架Mocha的安裝與使用

    NodeJs測試框架Mocha的安裝與使用

    本文全面介紹如何使用Mocha,讓你輕松上手。如果你以前對(duì)測試一無所知,本文也可以當(dāng)作JavaScript單元測試入門。
    2017-03-03

最新評(píng)論

沅江市| 五台县| 洛浦县| 蓝山县| 雅安市| 肥乡县| 明星| 西丰县| 南皮县| 河北区| 西藏| 台东市| 车致| 吴桥县| 周至县| 土默特左旗| 石渠县| 当涂县| 海原县| 石家庄市| 馆陶县| 息烽县| 玉林市| 奈曼旗| 新余市| 沐川县| 闽清县| 尼勒克县| 武隆县| 呼和浩特市| 宁德市| 安远县| 扬州市| 宁阳县| 历史| 本溪市| 胶南市| 白银市| 尉犁县| 马关县| 辽阳县|