Maison > interface Web > js tutoriel > Comment construire votre premier bot Discord avec Node.js

Comment construire votre premier bot Discord avec Node.js

Jennifer Aniston
Libérer: 2025-02-10 14:20:14
original
675 Les gens l'ont consulté

Comment construire votre premier bot Discord avec Node.js

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.

Comment construire votre premier bot Discord avec Node.js

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.

Comment construire votre premier bot Discord avec Node.js

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.

Comment construire votre premier bot Discord avec Node.js

Si tout s'est bien passé, vous devriez voir votre serveur nouvellement créé.

Comment construire votre premier bot Discord avec Node.js

É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 .

Comment construire votre premier bot Discord avec Node.js

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.

Comment construire votre premier bot Discord avec Node.js

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.

Comment construire votre premier bot Discord avec Node.js

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.

Comment construire votre premier bot Discord avec Node.js

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.

Comment construire votre premier bot Discord avec Node.js

É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.

Comment construire votre premier bot Discord avec Node.js

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.

Comment construire votre premier bot Discord avec Node.js

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.

Comment construire votre premier bot Discord avec Node.js

Si vous êtes en mesure d'ajouter avec succès le bot à votre serveur, vous devriez voir l'écran de réussite suivant.

Comment construire votre premier bot Discord avec Node.js

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.

Comment construire votre premier bot Discord avec Node.js

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

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

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

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.

Comment construire votre premier bot Discord avec Node.js

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

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.

Comment construire votre premier bot Discord avec Node.js

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

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.

Comment construire votre premier bot Discord avec Node.js

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

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

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

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

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal