Home > Web Front-end > JS Tutorial > body text

How to use node to build a WeChat personal account robot

php中世界最好的语言
Release: 2018-06-02 10:19:17
Original
1676 people have browsed it

This time I will show you how to use node to build a WeChat personal account robot. What are the precautions for using node to build a WeChat personal account robot. The following is a practical case, let's take a look.

Nowadays, daily life is inseparable from WeChat. This article will give you a clue and demonstrate how to use wechaty to operate your WeChat personal account to do some interesting things. It can automatically implement friend requests and keyword replies , automatic group pulling and other functions. Greatly improved the efficiency of community operations.

wechaty (https://chatie.io/wechaty/) is an open source WeChat personal account SDK. It carries out a series of packages and provides simple and easy-to-use interfaces. Then Developers can develop WeChat robots on top of it. You can use it to do many things:

1) Manage and maintain friends; 2) Process chat messages quickly and orderly 3) WeChat group management 4) Implement automatic replies 5)...

1. Get started quickly

wechaty The project homepage says 6 lines of code to create a WeChat robot, so let’s give it a try. Note: 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()
Copy after login

These 6 lines of code implement logging in to the WeChat personal account and Print out received messages.

wechaty can be run through Docker and NPM. This article uses the npm method

node bot.js to start this personal account robot. At this time, the command line will print out a link. We will Open it in the browser and you will see a QR code. Scan the code to log in (Note: At the end of 2017, as WeChat gradually shut down support for WeChat web version login, WeChat accounts registered later do not support web WeChat login. I spent 105 RMB to buy an account and felt sorry for my wallet for 3 seconds)

User Contact<刘星> logined // 扫码登录
Message: Message<JavaScript之禅> // 接收微信消息
Copy after login

The robot experience is at the end of the article. Sample code address: Github

2. Automatically pass friend requests

Through the previous sample code, you can find out how simple and powerful this library is. . Then let's implement the first small function: automatically request through friends

//···
.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')
}
})
//···
Copy after login

Here we listen to the friend event. You can get who sent what friend request. Here we have verified the request when adding friends. When the content of the friend request is [JS] or [JavaScript], the friend request will be automatically passed.

Copying the link to the browser and opening the QR code every time is not cool at all and it is not convenient to use on the server. At this time we can use the qrcode-terminal package to print out the QR code directly on the command line.

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

Run the node bot.js command line and the QR code will be printed directly, which is much more convenient.

3. Automatic reply

Now let’s implement the second small function: keyword automatic reply.

//···
.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之禅')
}
})
//···
Copy after login

Above we listen to message for message processing. message can receive all messages. We can determine whether it is a group chat message and reply with corresponding content based on the message. If you send [js], you will receive the set message and realize automatic reply.

4. Automatically pull groups

#As mentioned earlier, we mentioned the automatic reply of message keywords. By combining message processing and group management, we can Automatically attract groups based on keywords

//···
.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)
}
}
})
//···
Copy after login

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the PHP Chinese website!

Recommended reading:

How to use filter in vue

##How to use vue to determine the class of dom

The above is the detailed content of How to use node to build a WeChat personal account robot. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!