De nos jours, des robots sont utilisés pour automatiser diverses tâches. Depuis la sortie des appareils Alexa d'Amazon, le battage médiatique entourant les robots d'automatisation n'a fait que croître. Outre Alexa, d'autres outils de communication comme Discord et Telegram offrent des API pour développer des robots personnalisés.
Cet article se concentrera uniquement sur la création de votre premier bot avec l'API Discord exposée. Peut-être que le bot Discord le plus connu est le bot musical. Le bot musical vous permet de taper un nom de chanson et le bot attachera un nouvel utilisateur à votre chaîne qui joue la chanson demandée. C'est un bot couramment utilisé chez les jeunes sur les serveurs de jeux ou de streaming.
Commençons par créer un bot Discord personnalisé.
Cet article a été mis à jour pour 2020. Pour en savoir plus de nœud, consultez le développement Web Node.js.Les plats clés
- Le processus de création d'un bot Discord consiste à configurer un serveur de test, à générer un jeton d'autorisation, à définir les autorisations et à ajouter le bot au serveur, à configurer le projet et à explorer Discord.js.
- Le bot peut être contrôlé via le code après l'avoir enregistré sous un compte Discord sur le portail Discord Developers.
- Le bot Discord peut recevoir des autorisations pour lire l'historique des messages et envoyer des messages. Cela permet au bot de lire n'importe quel message envoyé à un canal.
- Le bot peut être programmé pour répondre à des commandes ou des messages spécifiques. Par exemple, si un message contient «ping», le bot peut être défini pour répondre avec «pong».
- L'utilisation d'un gestionnaire de commandes est recommandée pour les grands projets car il évite les problèmes associés aux chaînes «sinon… si», telles que la difficulté de lire, de déboguer, d'organiser et de maintenir le code.
Prérequis
- Node.js v10 ou plus installé (connaissance de base)
- un compte Discord et Discord Client
- Connaissance de base de l'utilisation d'un terminal
Étape 1: configurer le serveur de test
Tout d'abord, nous avons besoin d'un serveur de test sur lequel nous pouvons ensuite tester notre bot Discord. Nous pouvons créer un nouveau serveur en cliquant sur l'icône Plus à gauche de l'écran.
Une fenêtre contextuelle sera affichée qui vous demande si vous souhaitez rejoindre un serveur ou en créer un nouveau. Bien sûr, nous voulons créer un nouveau serveur.
Ensuite, nous devons saisir le nom de notre serveur. Pour garder les choses simples, j'ai nommé le serveur Discord_Playground. Si vous le souhaitez, vous pouvez modifier l'emplacement du serveur en fonction de l'endroit où vous vous trouvez pour obtenir un meilleur ping.
Si tout s'est bien passé, vous devriez voir votre serveur nouvellement créé.
Étape 2: Génération de jetons d'automne
Lorsque nous voulons contrôler notre bot via le code, nous devons d'abord enregistrer le bot sous notre compte Discord.
Pour enregistrer le bot, accédez au portail Discord Developers et connectez-vous avec votre compte.
Après la connexion, vous devriez pouvoir voir le tableau de bord. Créons une nouvelle application en cliquant sur le bouton nouvelle application .
Ensuite, vous verrez une fenêtre contextuelle qui vous demande de saisir un nom pour votre application. Appelons notre bot my-greeter-bot. En cliquant sur le bouton Créer , Discord créera une application API.
Lorsque l'application a été créée, vous verrez l'aperçu de l'application My-Greeter-Bot nouvellement créée. Vous verrez des informations comme un identifiant client et un secret client. Ce secret sera utilisé plus tard comme jeton d'autorisation.
Maintenant, cliquez sur l'option de menu bot dans le menu Paramètres . Discord créera notre application My-Greeter-Bot et y ajoutera un utilisateur de bot.
Lorsque le bot a été construit, vous obtenez un aperçu de votre bot personnalisé. Jetez un œil à la section Token . Copiez ce jeton d'autorisation et notez-le quelque part, car nous en aurons besoin plus tard pour se connecter à notre utilisateur de bot.
Étape 3: Définissez les autorisations et ajoutez du bot au serveur
Troisièmement, nous voulons définir les autorisations pour le bot et l'ajouter à notre serveur Discord.
Accédez à la section oAuth2 dans le menu Paramètres . Ici, nous pouvons définir la portée de notre bot. Comme nous voulons simplement activer un simple bot, nous choisissons l'option bot .
Vous remarquerez peut-être que l'URL d'autorisation ci-dessous a changé maintenant. Cependant, la section Autorisations = 0 indique que nous n'avons pas encore fixé des autorisations.
Si nous faisons défiler plus loin, vous trouverez la section bot permissions . Nous voulons que le bot puisse envoyer des messages et lire l'historique des messages. Nous avons besoin de l'autorisation de lire l'historique des messages afin que nous puissions détecter les demandes des utilisateurs.
Lorsque vous sélectionnez les deux options, remarquez que le nombre a changé pour le paramètre des autorisations dans l'URL d'autorisation.
Enfin, copiez cette URL et collez-le dans votre navigateur Web préféré. Vous trouverez un aperçu qui vous demande à quel serveur vous souhaitez ajouter le bot. Sélectionnons notre Discord_Playground nouvellement créé.
Cliquez sur le bouton Autoriser pour ajouter le bot à notre serveur.
Si vous êtes en mesure d'ajouter avec succès le bot à votre serveur, vous devriez voir l'écran de réussite suivant.
Si vous voulez revérifier que votre bot a été ajouté, accédez au canal Général . Vous devriez voir un message similaire qui indique que le bot a rejoint le canal.
Succès!
Étape 4: Configuration du projet
Enfin, créons le projet. Vous pouvez trouver le projet de base sur GitHub. Veuillez cloner le référentiel localement sur votre machine à l'aide du clone git https://github.com/sitepoint-editors/discord-bot-sitepoint.
Le projet dépend de deux dépendances, Dotenv et Discord.js. La première dépendance nous permet d'utiliser un fichier .env qui contient le jeton de bot que nous avons écrit. Il est évident que nous avons besoin de la deuxième dépendance, Discord.js, pour développer le bot Discord.
Afin d'installer les deux dépendances, veuillez exécuter l'installation de NPM dans le dossier du projet.
Enfin, pour terminer l'installation, créez un fichier .env dans la racine du projet. Ajoutez une variable d'environnement appelée jeton dans le fichier comme ceci:
<span>TOKEN=my-unique-bot-token </span>
Étape 5: Explorer Discord.js
Jetons un coup d'œil au fichier index.js situé à la racine du projet:
<span>require('dotenv').config(); </span><span>const Discord = require('discord.js'); </span><span>const bot = new Discord<span>.Client</span>(); </span> <span>const TOKEN = process.env.TOKEN; </span> bot<span>.login(TOKEN); </span>
Nous chargeons d'abord les variables d'environnement que nous avons définies en nécessitant la configuration du fichier d'environnement .env. Cela nous permet d'utiliser la variable de jeton que nous avons définie via Process.env.Token. La dernière ligne de l'extrait ci-dessus montre comment nous passons le jeton à la fonction de connexion afin d'accéder au bot que nous avons créé.
La variable bot est en fait notre client Discord à travers lequel nous interagirons.
Écoutez l'événement «prêt»
Ensuite, nous pouvons écouter les événements. Tout d'abord, nous écoutons un événement prêt. L'événement Ready est licencié une fois que nous sommes connectés au bot:
bot<span>.on('ready', () => { </span> <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>); </span><span>}); </span>
Si vous avez utilisé le jeton droit pour vous connecter au bot, votre terminal doit imprimer le nom de votre bot bot.user.tag.
Vous pouvez démarrer le bot en exécutant simplement le nœud index.js dans votre terminal. Assurez-vous que vous exécutez cette commande à la racine de votre projet.
Si le bot est connecté avec succès, vous devriez voir le nom de votre bot imprimé dans le terminal.
Écoutez l'événement «message»
Outre l'événement Ready , le client Discord vous permet d'écouter un événement Message . Cela signifie que le bot peut lire n'importe quel message envoyé à un canal. Pour lier à la section des autorisations, c'est la raison exacte pour laquelle nous devons donner le bot l'autorisation de lire l'historique des messages.
<span>TOKEN=my-unique-bot-token </span>
Si nous explorons le code un peu plus loin, vous voyez que nous recherchons un message avec le contenu ping. Si nous recevons un message qui contient juste un ping, le bot répond avec Pong. Après cela, nous utilisons msg.channel.send pour envoyer à nouveau pong à la chaîne.
Remarquez la différence entre les deux commandes:
- msg.reply: étiquette l'utilisateur initial qui a envoyé le message
- msg.channel.Send: envoie un message à la chaîne sans marquer personne
Essayez d'exécuter le bot avec le nœud index.js et envoyez un message de message à la chaîne générale. Vérifiez si vous voyez le même résultat.
Recherchez les utilisateurs tagués
Afin d'ajouter une nouvelle commande, nous devons étendre la clause if que nous avons avec un autre… si:
<span>require('dotenv').config(); </span><span>const Discord = require('discord.js'); </span><span>const bot = new Discord<span>.Client</span>(); </span> <span>const TOKEN = process.env.TOKEN; </span> bot<span>.login(TOKEN); </span>
Disons que nous voulons donner un coup de pied à quelqu'un en envoyant un message comme! Kick @Username. Donc, nous recherchons d'abord! Découvrez le contenu du message. Si nous trouvons un message qui commence par! Kick, nous pouvons vérifier si les utilisateurs ont été tagués dans le message avec la propriété MSG.Metions.Users.
S'il y a des utilisateurs tagués, nous pouvons sélectionner le premier utilisateur mentionné avec msg.mentions.users.First (). Ensuite, nous répondons à la chaîne avec le nom d'utilisateur de l'utilisateur dans le message.
Étape 6: Le problème avec l'essentiel… si la chaîne
Ensuite, discutons du problème avec tous ces autres… si les déclarations. Si vous n'avez que quelques commandes définies pour écouter dans l'événement de message, le code est assez lisible.
Cependant, lorsque nous décidons de construire un vaste projet de cette façon, nous nous retrouvons avec une chaîne de relevés d'autre… si les déclarations. Voici une petite liste de raisons pour lesquelles vous ne devriez pas utiliser d'autre… si des chaînes pour quelque chose qui n'est pas un petit projet:
- Il est plus facile de se faire victime de code spaghetti
- Le code est difficile à lire
- Ce n'est pas facile de déboguer
- Il est difficile d'organiser le code
- Ce n'est pas facile à entretenir à mesure que le code augmente
Par conséquent, jetons un coup d'œil au modèle de commande que nous pouvons utiliser.
Implémentation d'un gestionnaire de commandes
Un gestionnaire de commandes est une approche prise en charge par le package Discord.js. Avant de continuer, consultez la branche avancée avec Git Checkout Advanced. Cette branche contient l'implémentation du gestionnaire de commandes.
Folder de commande
Tout d'abord, explorons le dossier de commande. Ce dossier contient un fichier index.js qui exporte toutes les commandes que nous définirons. Pour garder les choses simples, nous ne définirons qu'une seule commande, ping:
bot<span>.on('ready', () => { </span> <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>); </span><span>}); </span>
Ensuite, regardons la mise en œuvre de la commande ping, qui exporte essentiellement un objet qui contient les éléments suivants:
- Nom: un nom de commande.
- Description: Il est de la meilleure pratique d'ajouter une description pour chaque commande.
- Exécuter: une fonction qui accepte les entrées MSG et ARGS. Cette fonction contient la même logique que nous l'avons fait dans notre autre… si la chaîne.
<span>TOKEN=my-unique-bot-token </span>
Commandes d'importation
Continuant, importons les commandes dans le fichier index.js. Remarquez que nous définissons une collection de commandes sur le bot Discord. Nous boumons sur toutes les commandes et les ajoutons une par une à la collection de commandes.
La fonction bot.commands.set accepte le nom de la commande et l'objet de commande entier:
<span>require('dotenv').config(); </span><span>const Discord = require('discord.js'); </span><span>const bot = new Discord<span>.Client</span>(); </span> <span>const TOKEN = process.env.TOKEN; </span> bot<span>.login(TOKEN); </span>
Après cela, nous devons supprimer notre autre… si la chaîne et la remplacer par un code dynamique pour trouver la bonne commande que nous voulons appeler:
bot<span>.on('ready', () => { </span> <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>); </span><span>}); </span>
Nous essayons d'abord de diviser le contenu du message par des espaces blancs en utilisant .split (/ /). Nous supposons que le premier élément de ce tableau Args est notre commande. Pour vérifier si la commande existe dans notre collection, la collection expose une fonction HAS (), qui renvoie simplement vrai ou faux. Si la commande n'existe pas, nous renvoyons une réponse vide.
Cependant, si la commande existe, nous utilisons la fonction get () pour récupérer la commande correcte et l'exécuter avec les paramètres d'entrée msg et args.
C'est une manière dynamique facile à lire et dynamique d'appeler les commandes sans écrire de code spaghetti. Cela vous permet d'étendre votre projet à plusieurs centaines de commandes si nécessaire.
Encore une fois, si vous souhaitez tester la nouvelle version de notre code, assurez-vous de consulter la branche avancée avec Git Checkout Advanced. Ensuite, installez toutes les dépendances avec NPM Installer et démarrez le bot avec le nœud index.js.
Envelopper
L'installation et la configuration d'un nouveau bot Discord peuvent être écrasantes au début. Cependant, l'API offerte par le package Discord.js est simple, et le site Web Discord fournit d'excellents exemples.
Comme ce tutoriel ne couvrait que deux autorisations, il y a beaucoup plus à trouver. Vous pouvez en savoir plus sur les autorisations sur le site Web DiscordJs.Guide.
Bonne chance avec la construction de votre premier bot Discord!
Soit dit en passant, vous pouvez rejoindre la communauté Discord de SitePoint avec ce lien. Venez parler de la technologie avec nous.
Questions fréquemment posées (FAQ) sur la construction d'un bot de discorde avec node.js
Comment puis-je ajouter plus de fonctionnalités à mon bot Discord?
Ajout de plus de fonctionnalités à votre bot Discord implique de comprendre la bibliothèque Discord.js et l'API Discord. Vous pouvez ajouter des fonctionnalités comme envoyer des messages, répondre aux messages, rejoindre un canal vocal, lire de l'audio, etc. Pour les ajouter, vous devez écouter des événements, puis effectuer des actions en fonction de ces événements. Par exemple, pour faire envoyer votre bot un message, vous pouvez utiliser l'événement «Message» et la méthode «message.channel.send».
Comment puis-je déboguer mon bot Discord?
Le débogage de votre bot Discord implique l'utilisation d'instructions Console.log pour imprimer des informations sur l'état et les actions du bot. Vous pouvez également utiliser des outils de débogage de Node.js comme le débogueur intégré ou des outils externes comme le débogueur de Visual Studio Code. De plus, la bibliothèque Discord.js propose des événements comme «Debug» et «avertissez» que vous pouvez écouter pour plus d'informations sur ce que fait le bot.
Comment puis-je faire en sorte que mon bot Discord interagisse avec d'autres API?
Faire de votre bot Discord Interagir avec d'autres API implique l'utilisation des bibliothèques «fetch» ou «axios» pour envoyer des demandes HTTP. Vous pouvez utiliser ces bibliothèques pour obtenir des données d'autres API, puis utiliser ces données dans votre bot. Par exemple, vous pouvez créer un bot qui récupère les données météorologiques et les envoie en tant que message dans un canal Discord.
Comment puis-je héberger mon bot Discord?
L'hébergement de votre bot Discord implique de l'exécuter sur un serveur au lieu de votre machine locale. Vous pouvez utiliser des fournisseurs d'hébergement cloud comme Heroku, AWS ou Google Cloud pour cela. Ces fournisseurs vous permettent d'exécuter votre bot 24/7, et ils fournissent souvent des bases de données et d'autres services que vous pouvez utiliser avec votre bot.
Comment puis-je faire répondre à mon bot Discord à des commandes spécifiques?
Faire répondre à votre bot Discord à des commandes spécifiques implique d'écouter l'événement 'Message', puis de vérifier si le contenu du message commence par une commande spécifique. Vous pouvez utiliser la méthode «StartWith» pour cela. Si le message commence par une commande, vous pouvez alors effectuer une action spécifique.
Comment puis-je faire jouer à l'audio de mon bot Discord dans un canal vocal? Le canal vocal implique l'utilisation de la partie «Voice» de la bibliothèque Discord.js. Vous pouvez utiliser la méthode «joinVoiceChannel» pour faire du bot rejoindre un canal vocal, puis utiliser la méthode «Play» pour lire l'audio. L'audio peut être un fichier local, un flux ou une URL.
Comment puis-je faire envoyer mon bot Discord Envoyer des images ou des intégres?
Faire de votre Discord Bot Envoyer des images ou des intégres implique d'utiliser le Classe 'Messageembed' dans la bibliothèque Discord.js. Vous pouvez créer une nouvelle intégration, définir son titre, la description, la couleur, l'image et d'autres propriétés, puis l'envoyer à l'aide de la méthode 'Message.Channel.Send'.
Comment puis-je faire réagir mon bot discord aux messages?
Faire réagir à votre bot Discord aux messages implique l'utilisation de la méthode 'Message.react'. Vous pouvez transmettre un emoji à cette méthode, et le bot réagira au message avec cet emoji. Vous pouvez utiliser des emojis personnalisés en passant leur ID, ou utiliser des emojis par défaut en passant leur caractère Unicode.
Comment puis-je faire mes erreurs de gestion de Discord Bot?
Les erreurs de traitement dans votre bot Discord impliquent d'utiliser des blocs Try / Catch et d'écouter l'événement «Erreur». Si une erreur se produit dans un bloc d'essai, le bloc de capture sera exécuté. L'événement «Erreur» sera émis chaque fois qu'une erreur se produit dans la bibliothèque Discord.js.
Comment puis-je faire en sorte que mon bot Discord utilise une base de données?
Faire de votre Discord Bot Utiliser une base de données implique Utilisation d'une bibliothèque de bases de données comme «Mongoose» pour MongoDB ou «séquelle» pour les bases de données SQL. Vous pouvez utiliser ces bibliothèques pour vous connecter à une base de données, définir des modèles, puis créer, lire, mettre à jour et supprimer des données.
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!

La puissance du cadre JavaScript réside dans la simplification du développement, l'amélioration de l'expérience utilisateur et les performances des applications. Lorsque vous choisissez un cadre, considérez: 1. Taille et complexité du projet, 2. Expérience d'équipe, 3. Écosystème et soutien communautaire.

INTRODUCTION Je sais que vous pouvez le trouver étrange, que doit faire exactement JavaScript, C et Browser? Ils semblent sans rapport, mais en fait, ils jouent un rôle très important dans le développement Web moderne. Aujourd'hui, nous discuterons du lien étroit entre ces trois. Grâce à cet article, vous apprendrez comment JavaScript fonctionne dans le navigateur, le rôle de C dans le moteur du navigateur et comment ils fonctionnent ensemble pour stimuler le rendu et l'interaction des pages Web. Nous connaissons tous la relation entre JavaScript et Browser. JavaScript est la langue principale du développement frontal. Il fonctionne directement dans le navigateur, rendant les pages Web vives et intéressantes. Vous êtes-vous déjà demandé pourquoi javascr

Node.js excelle dans des E / S efficaces, en grande partie grâce aux flux. Streams traite les données progressivement, en évitant la surcharge de mémoire - idéal pour les fichiers volumineux, les tâches réseau et les applications en temps réel. Combiner les flux avec la sécurité de type dactylographié crée un powe

Les différences de performance et d'efficacité entre Python et JavaScript se reflètent principalement dans: 1) comme un langage interprété, Python fonctionne lentement mais a une efficacité de développement élevée et convient au développement rapide des prototypes; 2) JavaScript est limité au thread unique dans le navigateur, mais les E / S multi-threading et asynchrones peuvent être utilisées pour améliorer les performances dans Node.js, et les deux ont des avantages dans les projets réels.

JavaScript est originaire de 1995 et a été créé par Brandon Ike, et a réalisé que la langue en langue C. 1.C offre des capacités de programmation élevées et au niveau du système pour JavaScript. 2. La gestion de la mémoire de JavaScript et l'optimisation des performances reposent sur le langage C. 3. La fonctionnalité multiplateforme du langage C aide JavaScript à s'exécuter efficacement sur différents systèmes d'exploitation.

JavaScript s'exécute dans les navigateurs et les environnements Node.js et s'appuie sur le moteur JavaScript pour analyser et exécuter du code. 1) Générer une arborescence de syntaxe abstraite (AST) au stade d'analyse; 2) Convertir AST en bytecode ou code machine à l'étape de compilation; 3) Exécutez le code compilé à l'étape d'exécution.

Les tendances futures de Python et JavaScript incluent: 1. Python consolidera sa position dans les domaines de l'informatique scientifique et de l'IA, 2. JavaScript favorisera le développement de la technologie Web, 3. Le développement de plate-forme multiplié deviendra un sujet brûlant, et 4. L'optimisation des performances sera le focus. Les deux continueront d'étendre les scénarios d'application dans leurs champs respectifs et de faire plus de percées dans les performances.

Les choix de Python et JavaScript dans les environnements de développement sont importants. 1) L'environnement de développement de Python comprend Pycharm, Jupyternotebook et Anaconda, qui conviennent à la science des données et au prototypage rapide. 2) L'environnement de développement de JavaScript comprend Node.js, VScode et WebPack, qui conviennent au développement frontal et back-end. Le choix des bons outils en fonction des besoins du projet peut améliorer l'efficacité du développement et le taux de réussite du projet.


Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft
