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.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éé.
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.
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!
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>
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.
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.
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:
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.
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.
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:
Par conséquent, jetons un coup d'œil au modèle de commande que nous pouvons utiliser.
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.
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:
<span>TOKEN=my-unique-bot-token </span>
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.
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.
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».
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.
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.
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.
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 envoyer mon bot Discord Envoyer des images ou des intégres?
Comment puis-je faire réagir mon bot discord aux messages?
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.
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!