Discord-Gateway-Intents: Was ein Bot hören darf
Gateway-Intents sind Optionen, die ein Bot beim Verbinden angibt. Sie sagen Discord, welche Gruppen von Live-Ereignissen er empfangen will. Ein Bot, der einen Intent nicht angefordert hat, bekommt diese Ereignisse einfach nie. So bleiben Daten privat und der Datenverkehr klein.
Was das Gateway ist
Ein Bot hält eine ständige Verbindung zu Discord, das Gateway. Darüber schiebt Discord Ereignisse, sobald sie passieren: Eine Nachricht wurde gesendet, ein Mitglied ist beigetreten, jemand tippt, ein Sprachkanal hat sich geändert. Ohne Grenzen würde jeder Bot jedes Ereignis aus jedem Server erhalten.
Intents sind der Filter. In der ersten Nachricht, die ein Bot nach dem Verbinden sendet, nennt er die gewünschten Intents als eine einzige Zahl. Discord schickt dann nur die passenden Ereignisse.
Die gängigen Intents
- Guilds: Server, Kanäle und Rollen, die erstellt oder geändert werden. Fast jeder Bot nutzt sie.
- Guild-Nachrichten: Nachrichten in Server-Kanälen. Der Text dieser Nachrichten braucht einen privilegierten Intent, siehe unten.
- Guild-Voice-States: wer Sprachkanäle betritt oder verlässt. Musik- und Sprachtools brauchen ihn.
- Guild-Moderation: Sperrungen und Einträge im Audit-Log.
- Guild-Nachrichtenreaktionen: hinzugefügte oder entfernte Reaktionen.
Drei Intents sind besonders: Presence, Server Members und Message Content. Sie sind privilegierte Intents, weil sie mehr persönliche Daten offenlegen und für größere Bots eine zusätzliche Freigabe brauchen.
Warum Server-Besitzer das wissen sollten
Wenn ein Bot online ist, aber Nachrichten, Beitritte oder Sprachänderungen ignoriert, ist ein fehlender Intent ein häufiger Grund. Er kann auch einen Verbindungsabbruch mit dem Fehlercode 4014 erklären, wenn ein Bot einen privilegierten Intent anfragt, der in seinen Einstellungen nicht aktiviert ist. Der Artikel Bot offline wegen Gateway-Fehler 4004 und 4014 behandelt das.
Intents sind außerdem ein Datenschutzsignal. Ein Bot, der nur das anfordert, was seine Funktionen brauchen, ist leichter vertrauenswürdig.
Intents und Noxyr
Der Haupt-Bot von Noxyr wird für dich verwaltet. Wenn du einen Custom Bot mit eigener Anwendung einrichtest, müssen die Intents Server Members und Message Content im Discord-Entwicklerportal aktiviert sein, wie die Einrichtungsanleitung erklärt. Sie werden für Funktionen wie Willkommensnachrichten und Präfix-Befehle gebraucht. Wenn ein Custom Bot offline ist, beginne mit der Anleitung bei Offline-Bots.
Mehr Details findest du unter Privilegierte Gateway-Intents erklärt.
Einen fremden Bot prüfen
Wenn sich ein Bot, den du installiert hast, seltsam verhält, frag den Entwickler, welche Intents er nutzt und warum. Gute Bots listen sie in der Dokumentation auf. Bei deinem eigenen Bot öffnest du das Entwicklerportal, gehst zur Seite Bot und vergleichst die Schalter mit dem, was der Code anfordert. Eine Abweichung ist das Erste, was du behebst.
Häufige Fragen
Was passiert, wenn ein Bot einen Intent nicht anfordert?
Discord schickt ihm die passenden Ereignisse nicht. Der Bot bleibt online, kann aber auf diese Dinge nicht reagieren.
Wo aktiviere ich Intents für meinen eigenen Bot?
Im Discord-Entwicklerportal öffnest du deine Anwendung, gehst zu Bot und aktivierst die privilegierten Intents, die er braucht.
Sind alle Intents privilegiert?
Nein. Nur Presence, Server Members und Message Content sind privilegiert. Die übrigen kannst du frei nutzen.