Heim >Web-Frontend >js-Tutorial >So bauen Sie Ihren ersten Discord Bot mit node.js auf

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Jennifer Aniston
Jennifer AnistonOriginal
2025-02-10 14:20:14696Durchsuche

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Heutzutage werden Bots zur Automatisierung verschiedener Aufgaben verwendet. Seit der Veröffentlichung von Amazon's Alexa Devices hat der Hype um Automatisierungsbots erst zu wachsen. Neben Alexa bieten andere Kommunikationstools wie Discord und Telegram APIs, um benutzerdefinierte Bots zu entwickeln.

Dieser Artikel konzentriert sich ausschließlich auf die Erstellung Ihres ersten Bots mit der exponierten Discord -API. Vielleicht ist der bekannteste Discord Bot der Musikbot. Mit dem Music Bot können Sie einen Songnamen eingeben, und der Bot wird einen neuen Benutzer an Ihren Kanal anhängen, der das angeforderte Lied spielt. Es ist ein häufig verwendeter Bot unter jüngeren Leuten auf Spielen oder Streaming -Servern.

Beginnen wir mit dem Erstellen eines benutzerdefinierten Discord Bot.

Dieser Artikel wurde für 2020 aktualisiert. Um mehr Knoten zu erfahren, lesen Sie die Webentwicklung von Node.js.

Key Takeaways

  • Der Prozess des Erstellens eines Discord Bot beinhaltet das Einrichten eines Testservers, das Generieren eines Autorisierungs -Tokens, das Definieren von Berechtigungen und das Hinzufügen des Bots zum Server, das Einrichten des Projekts und die Erkundung von Discord.js.
  • Der Bot kann über Code gesteuert werden, nachdem er ihn unter einem Discord -Konto im Portal des Discord -Entwicklers registriert hat.
  • Der Discord Bot kann Berechtigungen erhalten, den Nachrichtenverlauf zu lesen und Nachrichten zu senden. Dadurch kann der Bot eine an einen Kanal gesendete Nachricht lesen.
  • Der Bot kann so programmiert werden, dass sie auf bestimmte Befehle oder Nachrichten reagieren. Wenn beispielsweise eine Nachricht "Ping" enthält, kann der Bot so eingestellt werden, dass sie mit "Pong" antworten.
  • Die Verwendung eines Befehlshandlers wird für große Projekte empfohlen, da sie die Probleme vermeidet, die mit „sonst“ -Ketten verbunden sind, z. B. Schwierigkeiten beim Lesen, Debuggen, Organisieren und Aufrechterhalten des Code.

Voraussetzungen

  • node.js v10 oder höher installiert (Grundkenntnisse)
  • Ein Discord -Konto und Discord Client
  • Grundkenntnisse über die Verwendung eines Terminals

Schritt 1: Testserver einrichten

Erstens benötigen wir einen Testserver, auf dem wir unseren Discord Bot später testen können. Wir können einen neuen Server erstellen, indem wir links auf dem Bildschirm auf das Plus -Symbol klicken.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Ein Popup wird angezeigt, in dem Sie gefragt werden, ob Sie einem Server beitreten oder einen neuen erstellen möchten. Natürlich möchten wir einen neuen Server erstellen.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Als nächstes müssen wir den Namen für unseren Server eingeben. Um die Dinge einfach zu halten, habe ich den Server discord_playground benannt. Wenn Sie möchten, können Sie den Serverstandort ändern, je nachdem, wo Sie sich befinden, um einen besseren Ping zu erhalten.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Wenn alles gut lief, sollten Sie Ihren neu erstellten Server sehen.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Schritt 2: Auth -Token

generieren

Wenn wir unseren Bot über Code steuern möchten, müssen wir den Bot zuerst unter unserem Discord -Konto registrieren.

Um den Bot zu registrieren, gehen Sie zum Portal des Discord -Entwicklers und melden Sie sich mit Ihrem Konto an.

Nach dem Anmeldung sollten Sie das Dashboard sehen können. Erstellen wir eine neue Anwendung, indem Sie auf die Schaltfläche neue Anwendung

klicken.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Als nächstes sehen Sie ein Popup, in dem Sie aufgefordert werden, einen Namen für Ihre Anwendung einzugeben. Nennen wir unseren Bot My-Greeter-Bot. Durch Klicken auf die Schaltfläche erstellen

erstellt Discord eine API -Anwendung.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Wenn die Anwendung erstellt wurde, sehen Sie den Überblick über die neu erstellte My-Greeter-Bot-Anwendung. Sie sehen Informationen wie eine Client -ID und ein Client -Geheimnis. Dieses Geheimnis wird später als Autorisierungs -Token verwendet.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Klicken Sie jetzt auf die Menüoption bot im Menü Einstellungen

. Discord erstellt unsere My-Greeter-Bot-Anwendung und fügt einen Bot-Benutzer hinzu.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Wenn der Bot erstellt wurde, erhalten Sie einen Überblick über Ihren benutzerdefinierten Bot. Schauen Sie sich den Abschnitt Token

an. Kopieren Sie dieses Autorisierungs -Token und schreiben Sie sie irgendwo auf, da wir sie später benötigen, um eine Verbindung zu unserem Bot -Benutzer herzustellen.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Schritt 3: Berechtigungen definieren und Bot zu Server

hinzufügen

Drittens möchten wir die Berechtigungen für den Bot definieren und zu unserem Discord -Server hinzufügen.

Navigieren Sie zum Abschnitt oAuth2 im Menü Einstellungen . Hier können wir den Umfang für unseren Bot definieren. Da wir nur einen einfachen Bot aktivieren möchten, wählen wir die Option bot

.

Sie können feststellen, dass sich die unten stehende Autorisierungs -URL jetzt geändert hat. Der Abschnitt der Berechtigungen = 0 zeigt jedoch an, dass wir noch keine Berechtigungen festgelegt haben.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Wenn wir weiter nach unten scrollen, finden Sie den Abschnitt Bot -Berechtigungen

. Wir möchten, dass der Bot Nachrichten senden und den Nachrichtenverlauf lesen kann. Wir brauchen die Erlaubnis, den Nachrichtenverlauf zu lesen, damit wir die Anfragen der Benutzer erkennen können.

Wenn Sie beide Optionen auswählen, beachten Sie, dass sich die Nummer für den Parameter des Berechtigten in der Autorisierungs -URL geändert hat.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Zuletzt kopieren Sie diese URL und fügen Sie sie in Ihren bevorzugten Webbrowser ein. Sie finden einen Überblick, in dem Sie aufgefragt werden, zu welchem ​​Server Sie den Bot hinzufügen möchten. Wählen wir unseren neu erstellten Discord_playground.

klicken

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Wenn Sie den Bot erfolgreich zu Ihrem Server hinzufügen können, sollten Sie den folgenden Erfolgsbildschirm sehen.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Wenn Sie den Hinzufügen Ihres Bots überprüfen möchten, gehen Sie zum allgemeinen Kanal. Sie sollten eine ähnliche Nachricht sehen, die angibt, dass der Bot dem Kanal beigetreten ist.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Erfolg!

Schritt 4: Projekt -Setup

Lassen Sie uns schließlich das Projekt einrichten. Sie finden das Basisprojekt auf GitHub. Bitte klonen Sie das Repository lokal auf Ihrem Computer mit Git Clone https://github.com/sitepoint-editors/discord-bot-Sitepoint.

Das Projekt hängt von zwei Abhängigkeiten ab, Dotenv und Discord.js. Die erste Abhängigkeit ermöglicht es uns, eine .Env -Datei zu verwenden, in der das von uns geschriebene Bot -Token enthält. Es ist offensichtlich, dass wir die zweite Abhängigkeit, Discord.js, für die Entwicklung des Discord Bot.

brauchen

Um beide Abhängigkeiten zu installieren, führen Sie bitte die NPM -Installation im Projektordner aus.

Erstellen Sie zum Abschluss der Installation eine .env -Datei im Stamm des Projekts. Fügen Sie der Datei wie folgt eine Umgebungsvariable hinzu, die als Token bezeichnet wird:

<span>TOKEN=my-unique-bot-token
</span>

Schritt 5: Erkundung von diskord.js

Schauen wir uns die im Stamm des Projekts befindliche Index.js -Datei an:

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

Wir laden zuerst die Umgebungsvariablen, die wir definiert haben, indem wir die Konfiguration aus der Umgebung. Dies ermöglicht es uns, die Token -Variable zu verwenden, die wir durch Process.Env.Token definiert haben. Die letzte Zeile des oben genannten Snippets zeigt, wie wir das Token an die Anmeldefunktion übergeben, um Zugriff auf den von uns erstellten Bot zu erhalten.

Die Bot -Variable ist tatsächlich unser Discord -Client, über den wir interagieren.

Hören Sie auf "Ready" Ereignis

Als nächstes können wir auf Ereignisse hören. Zunächst hören wir uns ein fertiges Ereignis an. Das fertige Ereignis wird abgefeuert, sobald wir mit dem Bot verbunden sind:

bot<span>.on('ready', () => {
</span>  <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>);
</span><span>});
</span>

Wenn Sie das Rechts -Token verwendet haben, sich beim Bot anzumelden, sollte Ihr Terminal den Namen Ihres Bots.Users.tags.

Sie können den Bot starten, indem Sie einfach Node Index.js in Ihrem Terminal ausführen. Stellen Sie sicher, dass Sie diesen Befehl in der Stammwurzel Ihres Projekts ausführen.

Wenn der Bot erfolgreich angeschlossen ist, sollten Sie sehen, dass der Name Ihres Bots im Terminal gedruckt wird.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Hören Sie auf "Nachricht" Ereignis

Neben dem Ereignis

Ready können Sie mit dem Discord -Client ein -Stwegungsereignis anhören. Dies bedeutet, dass der Bot jede Nachricht lesen kann, die an einen Kanal gesendet wird. Um an den Abschnitt "Berechtigungen" zu binden, ist dies der genaue Grund, warum wir dem Bot die Erlaubnis geben müssen, den Nachrichtenhistorie zu lesen.

<span>TOKEN=my-unique-bot-token
</span>

Wenn wir den Code etwas weiter untersuchen, sehen Sie, dass wir nach einer Nachricht mit Inhaltsping suchen. Wenn wir eine Nachricht erhalten, die nur Ping enthält, antwortet der Bot mit Pong. Danach verwenden wir msg.channel.send, um erneut Pong an den Kanal zu senden.

Beachten Sie den Unterschied zwischen beiden Befehlen:

  • msg.REPLY: Tags der anfängliche Benutzer, der die Nachricht
  • gesendet hat
  • msg.channel.send: Sendet eine Nachricht an den Kanal, ohne jemanden zu markieren

Versuchen Sie, den Bot mit Node Index.js auszuführen und einen Nachrichten -Ping an den allgemeinen Kanal zu senden. Überprüfen Sie, ob Sie dasselbe Ergebnis sehen.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Suchen Sie nach markierten Benutzern

Um einen neuen Befehl hinzuzufügen, müssen wir die IF -Klausel mit einem anderen erweitern… wenn:

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

Nehmen wir an, wir möchten jemanden treten, indem wir eine Nachricht wie! Kick @USERNAME senden. Also, zuerst suchen wir nach! Kick in den Inhalt der Nachricht. Wenn wir eine Nachricht finden, die mit! Kick beginnt, können wir überprüfen, ob Benutzer in der Nachricht mit der Eigenschaft msg.mentions.users markiert wurden.

Wenn Benutzer markiert sind, können wir den ersten erwähnten Benutzer mit msg.mentions.users.first () auswählen. Als nächstes antworten wir mit dem Benutzernamen des Benutzers in der Nachricht auf den Kanal.

So bauen Sie Ihren ersten Discord Bot mit node.js auf

Schritt 6: Das Problem mit dem sonst… wenn Kette

Als nächstes diskutieren wir das Problem mit all diesen anderen… wenn Aussagen. Wenn Sie nur wenige Befehle definiert haben, die Sie im Nachrichtenereignis anhören können, ist der Code ziemlich lesbar.

Wenn wir uns jedoch entscheiden, ein umfangreiches Projekt auf diese Weise zu erstellen, haben wir eine andere Kette ... wenn Aussagen. Hier ist eine kleine Liste von Gründen, warum Sie sonst nichts verwenden sollten ... wenn Ketten für etwas, das kein kleines Projekt ist:

  • Es ist einfacher, Opfer zu Spaghetti -Code zu fallen
  • Der Code ist schwer zu lesen
  • Es ist nicht einfach,
  • zu debuggen
  • Es ist schwierig, Code
  • zu organisieren
  • Es ist nicht einfach zu warten, wenn der Code
  • wächst

Schauen wir uns also das Befehlsmuster an, das wir verwenden können.

Implementieren eines Befehlshandlers

Ein Befehlshandler ist ein Ansatz, der vom Discord.js -Paket unterstützt wird. Bevor wir fortfahren, lesen Sie die fortgeschrittene Filiale mit Git Checkout Advanced. Dieser Zweig enthält die Implementierung des Befehlshandlers.

Befehlsbefehl

Erforschen wir zuerst den Befehlsordner. Dieser Ordner enthält eine Index.js -Datei, in der alle Befehle exportiert werden, die wir definieren. Um die Dinge einfach zu halten, definieren wir nur einen Befehl, Ping:

bot<span>.on('ready', () => {
</span>  <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>);
</span><span>});
</span>

Schauen wir uns als nächstes die Implementierung des Ping -Befehls an, das im Grunde genommen ein Objekt exportiert, das Folgendes enthält:

  • Name: Ein Befehlsname.
  • Beschreibung: Es ist die beste Praxis, eine Beschreibung für jeden Befehl hinzuzufügen.
  • Ausführen: Eine Funktion, die MSG und args -Eingaben akzeptiert. Diese Funktion hält die gleiche Logik wie in unserem anderen… wenn Kette.
<span>TOKEN=my-unique-bot-token
</span>

importieren Befehle

Fortsetzung, importieren wir die Befehle in die Index.js -Datei. Beachten Sie, dass wir eine Befehlssammlung auf dem Discord Bot definieren. Wir schleifen alle Befehle über und fügen sie einzeln zur Befehlssammlung hinzu.

Die Funktion bot.commands.set akzeptiert den Namen des Befehls und das gesamte Befehlsobjekt:

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

Danach müssen wir unsere sonst entfernen… wenn Kette durch einen dynamischen Code ersetzen, um den richtigen Befehl zu finden, den wir aufrufen möchten:

bot<span>.on('ready', () => {
</span>  <span>console.info(<span>`Logged in as <span>${bot.user.tag}</span>!`</span>);
</span><span>});
</span>

Wir versuchen zunächst, den Inhalt der Nachricht durch Whitespaces mit .Split ( / /) zu teilen. Wir gehen davon aus, dass das erste Element in diesem Args -Array unser Befehl ist. Um zu überprüfen, ob der Befehl in unserer Sammlung vorhanden ist, enthält die Sammlung eine Funktion von (), die einfach wahr oder falsch zurückgibt. Wenn der Befehl nicht vorhanden ist, geben wir eine leere Antwort zurück.

Wenn der Befehl vorhanden ist, verwenden wir jedoch die Funktion Get (), um den richtigen Befehl abzurufen und mit den Eingabeparametern MSG und den Argumenten auszuführen.

Es handelt sich um eine leicht zu lesende, dynamische Art, Befehle zu rufen, ohne Spaghetti-Code zu schreiben. Auf diese Weise können Sie Ihr Projekt bei Bedarf auf viele hundert Befehle skalieren.

Wenn Sie die neue Version unseres Codes testen möchten, sollten Sie sich die erweiterte Filiale mit Git Checkout Advanced ansehen. Installieren Sie als Nächst

einpacken

installieren und einrichten eines neuen Discord Bot könnte sich zunächst überwältigend anfühlen. Die vom Discord.js -Paket angebotene API ist jedoch unkompliziert, und die Discord -Website bietet großartige Beispiele.

Da dieses Tutorial nur zwei Berechtigungen umfasste, gibt es noch viel mehr zu finden. Sie können mehr über Berechtigungen auf der Website diskordjs.guide erfahren.

Viel Glück beim Aufbau Ihres ersten Discord Bot!

Übrigens können Sie mit diesem Link die Discord -Community von SitePoint anschließen. Komm tech mit uns.

häufig gestellte Fragen (FAQs) zum Erstellen eines Discord -Bots mit Node.js

Wie kann ich meinem Discord Bot mehr Funktionen hinzufügen? Sie können Funktionen wie das Senden von Nachrichten, das Beantworten von Nachrichten, das Verbinden eines Sprachkanals, das Abspielen von Audio und vieles mehr hinzufügen. Um diese hinzuzufügen, müssen Sie sich Ereignisse anhören und dann Aktionen basierend auf diesen Ereignissen ausführen. Um Ihren Bot beispielsweise eine Nachricht zu senden, können Sie das Ereignis "Nachrichten" und die Methode "message.channel.send" verwenden.

Wie kann ich meinen Discord Bot debuggen? Sie können auch Node.JS-Debugging-Tools wie den integrierten Debugger oder externe Tools wie Debugger von Visual Studio Code verwenden. Darüber hinaus bietet die Discord.js -Bibliothek Veranstaltungen wie 'Debug' und 'warnen', die Sie anhören können, um weitere Informationen darüber zu erhalten, was der Bot tut.

Wie kann ich meinen Discord Bot mit anderen APIs interagieren?

Wenn Sie Ihren Discord -Bot mit anderen APIs interagieren, werden die Bibliotheken "Fetch" oder "Axios" verwendet, um HTTP -Anforderungen zu senden. Sie können diese Bibliotheken verwenden, um Daten von anderen APIs zu erhalten und diese Daten dann in Ihrem Bot zu verwenden. Zum Beispiel könnten Sie einen Bot erstellen, der Wetterdaten abreibt und sie als Nachricht in einem Discord -Kanal sendet. auf einem Server anstelle Ihrer lokalen Maschine. Dafür können Sie Cloud -Hosting -Anbieter wie Heroku, AWS oder Google Cloud verwenden. Diese Anbieter ermöglichen es Ihnen, Ihren Bot rund um die Uhr auszuführen, und sie bieten häufig Datenbanken und andere Dienste an, die Sie mit Ihrem Bot verwenden können. 🎜> Wenn Sie Ihren Discord Bot auf bestimmte Befehle beantworten lassen, werden Sie das Ereignis "Nachricht" anhören und dann überprüfen, ob der Nachrichteninhalt mit einem bestimmten Befehl startet. Dafür können Sie die Methode "Startswith" verwenden. Wenn die Nachricht mit einem Befehl beginnt, können Sie eine bestimmte Aktion ausführen. Der Sprachkanal beinhaltet die Verwendung des "Voice" -Teils der Discord.js -Bibliothek. Sie können die Methode "JoinVoicechannel" verwenden, um den Bot zu einem Sprachkanal zu machen, und dann die "Play" -Methode zum Abspielen von Audio verwenden. Das Audio kann eine lokale Datei, ein Stream oder eine URL sein. 'MessageMbed' -Klasse in der Discord.js -Bibliothek. Sie können eine neue Einbettung erstellen, seinen Titel, seine Beschreibung, Farbe, Bild und andere Eigenschaften festlegen und dann mit der Methode 'message.channel.send' senden.

Wie kann ich meinen Discord Bot reagieren lassen zu Nachrichten? Sie können ein Emoji an diese Methode übergeben, und der Bot reagiert mit diesem Emoji auf die Nachricht. Sie können benutzerdefinierte Emojis verwenden, indem Sie ihre ID übergeben oder Standard -Emojis verwenden, indem Sie ihr Unicode -Zeichen übergeben.

Wie kann ich meinen Discord -Bot zu Fehlern umgehen lassen? Wenn ein Fehler in einem Try -Block auftritt, wird der Fangblock ausgeführt. Das 'Fehler' Ereignis wird emittiert, wenn in der Discord.js -Bibliothek ein Fehler auftritt.

Wie kann ich meinen Discord Bot eine Datenbank verwenden? Verwenden einer Datenbankbibliothek wie "Mongoose" für MongoDB oder "Folgen" für SQL -Datenbanken. Sie können diese Bibliotheken verwenden, um eine Verbindung zu einer Datenbank herzustellen, Modelle zu definieren und dann Daten zu erstellen, zu lesen, zu aktualisieren und zu löschen.

Das obige ist der detaillierte Inhalt vonSo bauen Sie Ihren ersten Discord Bot mit node.js auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn