So erstellst du einen Chatbot in Discord
Ein Discord-Bot kann alles tun, was in anderen Kanälen möglich ist, und zusätzlich direkt mit deinem Server interagieren: in Kanälen, Threads und Direktnachrichten antworten, Reaktionen hinzufügen, Dateien empfangen und senden sowie eigene Nachrichten bearbeiten oder löschen. Weitere Funktionen umfassen Moderation (Timeouts, Kicks, Bans und Nachrichtenlöschung), Rollenverwaltung, Erstellen von Kanälen für Tickets und Slash-Befehle.
Die Einrichtung dauert etwa zehn Minuten und besteht aus zwei Teilen: Zuerst erstellst du den Bot auf der Discord-Seite, dann verbindest du ihn mit deinem Projekt in Mavibot.
Schritt 1. Eine Anwendung erstellen
Öffne das Discord Developer Portal und klicke auf New Application. Gib einen Namen ein – die Servermitglieder werden ihn sehen.
Im Abschnitt Installation setze Install Link auf None. Du erstellst den Bot-Installationslink selbst in Schritt 4 mit den erforderlichen Berechtigungen.
Schritt 2. Den Bot konfigurieren
Gehe zum Abschnitt Bot.
Deaktiviere Public Bot. Andernfalls kann jeder deinen Bot zu seinem Server hinzufügen.
Aktiviere die erforderlichen privilegierten Intents – ohne sie sendet Discord bestimmte Daten nicht an den Bot:
| Intent | Wofür wird es benötigt |
|---|---|
| Message Content Intent | Nachrichtentext. Ohne ihn sieht der Bot, dass eine Nachricht gesendet wurde, kann aber ihren Inhalt nicht sehen, sodass textbasierte Auslöser nicht funktionieren. |
| Server Members Intent | Mitgliederereignisse: Beitritte, Austritte, Rollenänderungen und Spitznamenänderungen. Ohne ihn funktionieren Begrüßungen neuer Mitglieder und automatische Rollenzuweisungen nicht. |
| Presence Intent | Online-Status. Er ist für den Betrieb des Bots nicht erforderlich und muss nicht aktiviert werden. |
Schritt 3. Bot-Token abrufen
Klicke im selben Abschnitt Bot auf Reset Token und kopiere den angezeigten Token. Er wird nur einmal angezeigt – speichere ihn, da du ihn in Schritt 6 benötigst.
Wichtig! Der Token gewährt vollständigen Zugriff auf deinen Bot. Veröffentliche oder teile ihn nicht. Wenn der Token kompromittiert ist, klicke erneut auf Reset Token. Der alte Token wird sofort ungültig, und du musst den Bot in Mavibot mit dem neuen Token erneut verbinden.
Schritt 4. Berechtigungen auswählen
Öffne OAuth2 → URL Generator.
Wähle unter Scopes aus:
-
bot– der Bot selbst; -
applications.commands– falls du Slash-Befehle verwenden möchtest. Ohne diesen Scope können Befehle nicht auf dem Server registriert werden.
Der Abschnitt Bot Permissions wird darunter angezeigt. Wähle nur die Berechtigungen aus, die dein Bot tatsächlich benötigt – es ist besser, keine unnötigen Berechtigungen zu erteilen.
Mindestberechtigungen für Nachrichten
| Berechtigung | Was ohne sie nicht funktioniert |
|---|---|
| View Channels | Der Bot kann Kanäle überhaupt nicht sehen |
| Send Messages | Der Bot kann nicht antworten |
| Read Message History | Antworten auf Nachrichten und Zitate funktionieren nicht |
| Embed Links, Attach Files | Links mit Vorschauen und Dateien werden nicht gesendet |
| Add Reactions | Der Bot kann keine Reaktionen hinzufügen |
Zusätzliche Berechtigungen für Moderation und Automatisierung
| Berechtigung | Wofür wird sie verwendet |
|---|---|
| Manage Messages | Löschen von Nachrichten anderer Benutzer und Verwalten von angepinnten Nachrichten |
| Moderate Members | Timeouts (Stummschaltungen) |
| Kick Members | Entfernen von Mitgliedern vom Server |
| Ban Members | Bannen und Entbannen von Mitgliedern |
| Manage Roles | Zuweisen und Entfernen von Rollen |
| Manage Nicknames | Ändern von Mitglieder-Spitznamen |
| Manage Channels | Erstellen und Löschen von Kanälen, einschließlich Ticket-Kanälen |
| Create Instant Invite | Erstellen von Einladungslinks |
Berechtigungen können später auch in den Bot-Rolleneinstellungen auf dem Server geändert werden, ohne den Bot neu zu verbinden.
Schritt 5. Bot zum Server hinzufügen
Kopiere die URL, die unten auf der Seite URL Generator generiert wurde, öffne sie in deinem Browser und wähle den Server aus.
Nur der Serverbesitzer oder ein Mitglied mit der Berechtigung Manage Server kann den Bot hinzufügen.
Überprüfe nach dem Hinzufügen des Bots die Rollenreihenfolge:
Server Settings → Roles
Die Rolle des Bots muss über den Rollen liegen, die er zuweisen wird, und über den Rollen der Mitglieder, die er moderieren muss.
Dies ist eine Discord-Einschränkung: Ein Bot kann keine Rolle zuweisen, die auf derselben Ebene oder höher als seine eigene Rolle ist, und er kann kein Mitglied timeouten oder bannen, dessen Rolle höher ist als die des Bots.
Schritt 6. Interactions Endpoint URL leer lassen
Gehe zurück zum Abschnitt General Information deiner Anwendung und stelle sicher, dass das Feld Interactions Endpoint URL leer ist.
Wenn in diesem Feld etwas angegeben ist, sendet Discord keine Klickereignisse von Buttons und Slash-Befehlsinteraktionen mehr an den Bot – sie werden stattdessen an die angegebene URL gesendet.
Aus Benutzersicht sieht das so aus, als ob Buttons in Bot-Nachrichten nicht funktionieren, während Slash-Befehle "Application did not respond." zurückgeben.
Schritt 7. Bot mit deinem Projekt verbinden
Öffne in deinem Mavibot-Projekt den Abschnitt Channels, klicke auf Discord und füge den Token aus Schritt 3 ein.
Nach einigen Sekunden sollte der Bot auf deinem Discord-Server online erscheinen. Wenn nicht, stelle sicher, dass der Token vollständig kopiert wurde und keine überflüssigen Leerzeichen enthält.
Überprüfen, ob alles funktioniert
Sende eine Nachricht in einem beliebigen Serverkanal, die eine der Antworten deines Bots auslösen sollte – der Bot sollte antworten.
Wenn der Bot online ist, aber nicht antwortet, ist höchstwahrscheinlich Message Content Intent nicht aktiviert.
Tritt dem Server mit einem anderen Konto bei oder bitte einen Kollegen, beizutreten – die Begrüßung neuer Mitglieder sollte ausgelöst werden. Wenn nicht, überprüfe Server Members Intent.
Klicke auf einen Button in einer Bot-Nachricht. Wenn nichts passiert, überprüfe die Interactions Endpoint URL.
Wichtige Dinge, die du wissen solltest
Eine Kanalunterhaltung wird von allen geteilt
Alle Kanalmitglieder schreiben in dieselbe Unterhaltung, genau wie in einem Gruppenchat.
Variablen wie "wer hat die Nachricht gesendet" beziehen sich auf den Autor der letzten Nachricht und werden von der nächsten Nachricht überschrieben – lies und verarbeite sie sofort im selben Block.
Direktnachrichten mit dem Bot und Mitgliederereignisse wie Beitritte, Austritte und Rollenänderungen werden in einer separaten Unterhaltung für dieses Mitglied behandelt.
Direktnachrichten sind von Discord eingeschränkt
Ein Bot kann einem Mitglied nur dann eine Direktnachricht senden, wenn das Mitglied einen Server mit dem Bot teilt und Direktnachrichten von Servermitgliedern nicht in seinen Datenschutzeinstellungen deaktiviert hat.
Wenn das Mitglied Direktnachrichten deaktiviert hat, kann die Nachricht nicht zugestellt werden – dies ist eine Discord-Einschränkung und kann nicht umgangen werden.
Vollständige Webhook-Daten
Wenn du der Variablen save_webhook einen Wert zuweist, werden alle eingehenden Ereignisdaten in der Variablen discord_webhook gespeichert.
Dies wird selten benötigt – fast alles, was du aus dem Webhook benötigen könntest, ist bereits über separate Variablen verfügbar.
Häufige Probleme
| Was passiert | Warum |
|---|---|
| Der Bot ist online, reagiert aber nicht auf Text | Message Content Intent ist nicht aktiviert |
| Beitritts-, Austritts- und Rollenänderungsereignisse werden nicht empfangen | Server Members Intent ist nicht aktiviert |
| Buttons funktionieren nicht und Slash-Befehle geben "Application did not respond" zurück | Interactions Endpoint URL ist ausgefüllt |
| Slash-Befehle können nicht registriert werden | Der Bot wurde ohne den Scope applications.commands hinzugefügt – generiere eine neue Installations-URL und füge den Bot erneut hinzu |
| Der Bot kann keine Rolle zuweisen | Die Rolle des Bots liegt nicht über der Zielrolle, oder der Bot hat nicht Manage Roles. Von Integrationen verwaltete Rollen, einschließlich Rollen anderer Bots, und die Rolle @everyone können nicht zugewiesen werden |
| Der Bot kann ein Mitglied nicht timeouten oder bannen | Die Rolle des Mitglieds ist höher als die Rolle des Bots, oder der Bot hat nicht Moderate Members / Ban Members |
| Der Bot kann einen bestimmten Kanal nicht sehen | Kanal-spezifische Berechtigungen überschreiben Server-Berechtigungen. Überprüfe die Bot-Rollenberechtigungen in den Einstellungen dieses Kanals |
| Nachrichten können nicht gelöscht werden | Der Bot hat nicht Manage Messages. Discord erlaubt das Massenlöschen nur für Nachrichten, die weniger als 14 Tage alt sind |
Wie geht es weiter
Ein Discord-Chatbot unterstützt dieselben Kernfunktionen wie Bots in anderen Kanälen: Er kann Nachrichten an Kanäle, Threads und Direktnachrichten senden, Reaktionen hinzufügen, Anhänge senden und empfangen sowie eigene Nachrichten bearbeiten oder löschen.
Informationen zu den Serververwaltungsfunktionen, die in deinem Bot-Ablauf verfügbar sind, findest du unter "Discord API-Funktionen."
Um zu erfahren, wie du den Nachrichtenablauf selbst erstellst, siehe "So erstellst du einen Chatbot für Unternehmen."
Damit KI mit Kunden in Discord kommunizieren kann, aktiviere einen KI-Assistenten – siehe den Abschnitt "KI-Assistent."