Maison  >  Article  >  interface Web  >  Comment utiliser Node pour créer un robot de compte personnel

Comment utiliser Node pour créer un robot de compte personnel

php中世界最好的语言
php中世界最好的语言original
2018-06-06 09:43:081919parcourir

Cette fois, je vais vous montrer comment utiliser node pour créer un robot de compte personnel, et quelles sont les précautions à prendre pour utiliser node pour créer un robot de compte personnel. Ce qui suit est un cas pratique, jetons un coup d'oeil.

De nos jours, la vie quotidienne est indissociable de WeChat. Cet article vous présentera comment utiliser wechaty pour gérer votre compte personnel WeChat afin de faire des choses intéressantes. Il peut réaliser des demandes d'amis automatiques, des réponses par mots clés, des réunions de groupe automatiques. , etc. . Considérablement amélioré l’efficacité des opérations communautaires.

wechaty (https://chatie.io/wechaty/) est un SDK de compte personnel WeChat open source. Il exécute une série de packages et fournit des interfaces simples et faciles à utiliser, puis les développeurs peuvent le faire. Développement de robots WeChat. Vous pouvez l'utiliser pour faire beaucoup de choses :

1) Gérer et entretenir vos amis ; 2) Traiter les messages de discussion rapidement et de manière ordonnée 3) Gestion des groupes WeChat 4) Mettre en œuvre des réponses automatiques 5)...

1. Commencez rapidement

La page d'accueil du projet Wechaty indique 6 lignes de code pour créer un robot WeChat, alors essayons-le. Remarque : version Node.js >= 8.5

Le code ChatBot le plus court au monde : 6 lignes de 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()

Ces 6 lignes de code implémentent la connexion au compte personnel WeChat et l'impression quelles sont les nouvelles reçues.

wechaty peut être exécuté via Docker et NPM. Cet article utilise la méthode npm

node bot.js pour démarrer ce robot de compte personnel. À ce stade, la ligne de commande imprimera un lien. . Nous l'ouvrirons dans le navigateur et vous verrez un code QR. Scannez le code pour vous connecter (Remarque : fin 2017, alors que WeChat a progressivement arrêté la prise en charge de la connexion à la version Web de WeChat, les comptes WeChat enregistrés ultérieurement ne sont pas pris en charge. connexion Web WeChat. J'ai dépensé 105 RMB pour acheter un compte et je l'ai utilisé. Je me suis senti désolé pour mon portefeuille pendant 3 secondes)

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

L'expérience robot est à la fin de l'article. Exemple d'adresse de code : Github

2. Transmettre automatiquement les demandes d'amis

Grâce à l'exemple de code précédent, vous pouvez voir à quel point cette bibliothèque est simple et puissante est . Implémentons ensuite la première petite fonction : demander automatiquement des amis

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

Ici, nous écoutons l'événement ami. Vous pouvez savoir qui a envoyé quelle demande d’ami. Ici, nous avons vérifié la demande lors de l'ajout d'amis. Lorsque le contenu de la demande d'ami est [JS] ou [JavaScript], la demande d'ami sera automatiquement transmise.

Copier le lien vers le navigateur à chaque fois pour ouvrir le code QR et scanner le code n'est pas cool du tout et ce n'est pas pratique à utiliser sur le serveur. À ce stade, nous pouvons utiliser le package qrcode-terminal pour imprimer le code QR directement sur la ligne de commande.

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

Exécutez la ligne de commande node bot.js et le code QR sera imprimé directement, ce qui est beaucoup plus pratique.

3. Réponse automatique

Implémentons maintenant la deuxième petite fonction : la réponse automatique par mot clé.

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

Ci-dessus, nous écoutons le message pour le traitement des messages. Le message peut recevoir tous les messages. Nous pouvons déterminer s'il s'agit d'un message de discussion de groupe et répondre avec le contenu correspondant en fonction du message. Si vous envoyez [js], vous recevrez le message défini et réaliserez une réponse automatique.

4. Extraire automatiquement les groupes

Comme mentionné précédemment, nous avons évoqué la réponse automatique des mots-clés des messages en combinant le traitement des messages et la gestion des groupes, nous pouvons réaliser une discussion de groupe automatique basée sur des mots-clés

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

Le code ci-dessus gère la discussion de groupe via Room. À ce moment-là, répondez [Ajouter un groupe] et vous serez automatiquement ajouté au groupe. Bien sûr, nous pouvons faire plus, comme utiliser Room.del pour expulser un certain membre du groupe.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Comment obtenir la position absolue des éléments DOM dans l'interface front-end

Comment optimiser le code angulaire

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn