>웹 프론트엔드 >JS 튜토리얼 >노드를 사용하여 개인 계정 로봇을 만드는 방법

노드를 사용하여 개인 계정 로봇을 만드는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-06-06 09:43:081953검색

이번에는 노드를 사용하여 개인 계정 로봇을 만드는 방법과 노드를 사용하여 개인 계정 로봇을 만들 때 주의 사항이 무엇인지 보여드리겠습니다. 다음은 실제 사례입니다.

요즘 일상생활은 WeChat과 떼려야 뗄 수 없습니다. 이 글에서는 WeChat을 사용하여 자동 친구 요청, 키워드 답장, 자동 그룹 모집 등의 흥미로운 기능을 구현하는 방법을 소개합니다. . 커뮤니티 운영의 효율성이 크게 향상되었습니다.

wechaty(https://chatie.io/wechaty/)는 오픈 소스 WeChat 개인 계정 SDK로, 일련의 패키지가 있으며 간단하고 사용하기 쉬운 인터페이스를 제공합니다. 그런 다음 개발자는 위에 WeChat 로봇을 구축할 수 있습니다. 그것의 개발. 이를 사용하여 다양한 작업을 수행할 수 있습니다:

1) 친구 관리 및 유지 2) 채팅 메시지를 빠르고 질서 있게 처리 3) WeChat 그룹 관리 4) 자동 응답 구현 5)...

1. 빠르게 시작

위챗 프로젝트 홈페이지에는 위챗 로봇을 생성하는 코드가 6줄이라고 나와 있으니 한번 시도해 보세요. 참고: Node.js 버전 >= 8.5

세계에서 가장 짧은 ChatBot 코드: JavaScript 6줄

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줄의 코드는 WeChat 개인 계정에 로그인하고 받은 메시지를 인쇄하는 기능을 구현합니다.

wechaty는 Docker와 NPM을 통해 실행할 수 있습니다. 이 기사에서는 npm 메서드

node bot.js를 사용하여 이 개인 계정 로봇을 시작합니다. 이때 명령줄을 사용하면 브라우저에서 링크를 열 수 있습니다. 코드를 스캔하면 로그인할 수 있습니다. (참고: 2017년 말 WeChat이 WeChat 웹 버전에 대한 로그인 지원을 점차 종료함에 따라 나중에 등록된 WeChat 계정은 로그인을 지원하지 않았습니다. 웹 WeChat 계정. 계정 구매에 105RMB를 썼습니다. 사용하고 3초 동안 지갑이 아쉬워졌습니다.)

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

로봇 체험은 기사 끝에 있습니다. 샘플 코드 주소: Github

2. 친구 요청 자동 전달

이전 샘플 코드를 통해 이 라이브러리가 얼마나 간단하고 강력한지 확인할 수 있습니다. 그런 다음 첫 번째 작은 기능을 구현해 보겠습니다.

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

를 통해 자동으로 친구를 요청합니다. 여기에서 친구 이벤트를 듣습니다. 누가 어떤 친구 요청을 보냈는지 알 수 있습니다. 여기서는 친구 추가 시 요청 내용을 확인하였습니다. 친구 요청 내용이 [JS] 또는 [JavaScript]인 경우 자동으로 친구 요청이 전달됩니다.

링크를 브라우저에 복사해 QR코드를 열고 매번 스캔하는 것은 전혀 쿨하지 않고, 서버에서 사용하기에도 불편합니다. 이때 qrcode-terminal 패키지를 사용하여 명령줄에서 직접 QR 코드를 인쇄할 수 있습니다.

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

node bot.js 명령줄을 실행하면 QR 코드가 직접 인쇄되므로 훨씬 편리합니다.

3. 자동 답장

이제 두 번째 작은 기능인 키워드 자동 답장을 구현해 보겠습니다.

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

위에서는 메시지 처리를 위해 메시지를 듣습니다. 메시지는 모든 메시지를 수신할 수 있으며, 메시지를 기반으로 그룹 채팅 메시지인지 여부를 판단하고 해당 내용을 회신할 수 있습니다. [js]를 보내면 설정된 메시지가 수신되고 자동 응답이 구현됩니다.

4. 자동으로 그룹 가져오기

앞서 언급한 것처럼 메시지 키워드에 대한 자동 답장 메시지 처리와 그룹 관리를 결합하면 키워드를 기준으로 자동으로 그룹을 가져올 수 있습니다.

//···
.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을 사용하여 특정 그룹 구성원을 쫓아내는 등 더 많은 작업을 수행할 수 있습니다.

이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

프런트 엔드 인터페이스에서 DOM 요소의 절대 위치를 얻는 방법

Angular 코드를 최적화하는 방법

위 내용은 노드를 사용하여 개인 계정 로봇을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.