Maison interface Web js tutoriel Comment utiliser Node pour créer un robot de compte personnel

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

Jun 06, 2018 am 09:43 AM
node nodejs

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()
Copier après la connexion

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之禅> // 接收微信消息
Copier après la connexion

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')
}
})
//···
Copier après la connexion

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)
})
//···
Copier après la connexion

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之禅')
}
})
//···
Copier après la connexion

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)
}
}
})
//···
Copier après la connexion

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La différence entre nodejs et tomcat La différence entre nodejs et tomcat Apr 21, 2024 am 04:16 AM

Les principales différences entre Node.js et Tomcat sont : Runtime : Node.js est basé sur le runtime JavaScript, tandis que Tomcat est un conteneur de servlet Java. Modèle d'E/S : Node.js utilise un modèle asynchrone non bloquant, tandis que Tomcat est un modèle de blocage synchrone. Gestion de la concurrence : Node.js gère la concurrence via une boucle d'événements, tandis que Tomcat utilise un pool de threads. Scénarios d'application : Node.js convient aux applications en temps réel, gourmandes en données et à forte concurrence, et Tomcat convient aux applications Web Java traditionnelles.

La différence entre nodejs et vuejs La différence entre nodejs et vuejs Apr 21, 2024 am 04:17 AM

Node.js est un environnement d'exécution JavaScript côté serveur, tandis que Vue.js est un framework JavaScript côté client permettant de créer des interfaces utilisateur interactives. Node.js est utilisé pour le développement côté serveur, comme le développement d'API de service back-end et le traitement des données, tandis que Vue.js est utilisé pour le développement côté client, comme les applications monopage et les interfaces utilisateur réactives.

Nodejs est-il un framework backend ? Nodejs est-il un framework backend ? Apr 21, 2024 am 05:09 AM

Node.js peut être utilisé comme framework backend car il offre des fonctionnalités telles que des performances élevées, l'évolutivité, la prise en charge multiplateforme, un écosystème riche et une facilité de développement.

Comment connecter Nodejs à la base de données MySQL Comment connecter Nodejs à la base de données MySQL Apr 21, 2024 am 06:13 AM

Pour vous connecter à une base de données MySQL, vous devez suivre ces étapes : Installez le pilote mysql2. Utilisez mysql2.createConnection() pour créer un objet de connexion contenant l'adresse de l'hôte, le port, le nom d'utilisateur, le mot de passe et le nom de la base de données. Utilisez connection.query() pour effectuer des requêtes. Enfin, utilisez connection.end() pour mettre fin à la connexion.

Quelles sont les variables globales dans nodejs Quelles sont les variables globales dans nodejs Apr 21, 2024 am 04:54 AM

Les variables globales suivantes existent dans Node.js : Objet global : global Module principal : processus, console, nécessiter Variables d'environnement d'exécution : __dirname, __filename, __line, __column Constantes : undefined, null, NaN, Infinity, -Infinity

Quelle est la différence entre les fichiers npm et npm.cmd dans le répertoire d'installation de nodejs ? Quelle est la différence entre les fichiers npm et npm.cmd dans le répertoire d'installation de nodejs ? Apr 21, 2024 am 05:18 AM

Il existe deux fichiers liés à npm dans le répertoire d'installation de Node.js : npm et npm.cmd. Les différences sont les suivantes : différentes extensions : npm est un fichier exécutable et npm.cmd est un raccourci de fenêtre de commande. Utilisateurs Windows : npm.cmd peut être utilisé à partir de l'invite de commande, npm ne peut être exécuté qu'à partir de la ligne de commande. Compatibilité : npm.cmd est spécifique aux systèmes Windows, npm est disponible multiplateforme. Recommandations d'utilisation : les utilisateurs Windows utilisent npm.cmd, les autres systèmes d'exploitation utilisent npm.

Y a-t-il une grande différence entre nodejs et java ? Y a-t-il une grande différence entre nodejs et java ? Apr 21, 2024 am 06:12 AM

Les principales différences entre Node.js et Java résident dans la conception et les fonctionnalités : Piloté par les événements ou piloté par les threads : Node.js est piloté par les événements et Java est piloté par les threads. Monothread ou multithread : Node.js utilise une boucle d'événements monothread et Java utilise une architecture multithread. Environnement d'exécution : Node.js s'exécute sur le moteur JavaScript V8, tandis que Java s'exécute sur la JVM. Syntaxe : Node.js utilise la syntaxe JavaScript, tandis que Java utilise la syntaxe Java. Objectif : Node.js convient aux tâches gourmandes en E/S, tandis que Java convient aux applications de grande entreprise.

Nodejs est-il un langage de développement back-end ? Nodejs est-il un langage de développement back-end ? Apr 21, 2024 am 05:09 AM

Oui, Node.js est un langage de développement backend. Il est utilisé pour le développement back-end, notamment la gestion de la logique métier côté serveur, la gestion des connexions à la base de données et la fourniture d'API.

See all articles