Dokumentation 9.6.24
Discord-Integration
Nur die im installierten Panel verfügbaren Integrationen verwenden.
Webhook#
Webhook im Zielkanal erstellen und in den Integrationseinstellungen speichern. URL und Bot-Token geheim halten. Vor Aktivierung eine kontrollierte Testnachricht senden.
Berechtigungen#
Nur benötigte Rechte vergeben. Bei Fehlern Kanal, Token und Anbieterantwort prüfen. Offengelegte Tokens erneuern und nicht in Logs oder Screenshots teilen.
Die drei Integrationen unterscheiden#
Unter Einstellungen → Integrationen sind Webhook-URL, Bot-Token und OAuth-Clientdaten getrennte Felder. Sie betreffen Benachrichtigungen, Bot-Identität beziehungsweise Anmeldung. Ein funktionierender Webhook bestätigt weder Bot-Befehle noch OAuth.
Webhook, Bot-Token und Client-Secret vertraulich halten. Der öffentliche Community-Einladungslink ist etwas anderes: keine geheime Webhook-URL im Einladungsfeld der Website speichern.
Benachrichtigungen kontrolliert prüfen#
Wählen Sie einen geeigneten Staff-Kanal und überprüfen Sie dessen Zugriff vor dem Versand von Spielerinformationen.
- Einen eigenen Webhook nach Discord-Anleitung erstellen und vollständig im entsprechenden Feld speichern.
- Auf abgeschnittene URLs, Leerzeichen und alte Kanalwerte achten.
- Eine vorhandene Testfunktion oder ein normales sicheres Ereignis beobachten; keine Spieler bannen oder Zahlungen als Test auslösen.
- Kanal, Zeitpunkt und Inhalt prüfen. Bei Fehlern den Ablauf untersuchen, statt denselben Vorgang ständig zu wiederholen.
Bot, OAuth und offengelegte Werte#
Nur benötigte Bot-Berechtigungen vergeben. Ein gespeichertes Token bestätigt nicht, dass Bot-Laufzeit und alle Befehle eingerichtet sind. Bei OAuth Client-ID und Secret getrennt speichern und die Weiterleitungsadresse mit der installierten Anmeldung abgleichen.
Anmeldung in einer separaten Sitzung testen und eine bestehende Admin-Sitzung behalten. Für Support den betroffenen Ablauf und bereinigten Fehler mit Uhrzeit angeben.
Veröffentlichte Tokens oder Webhook-Adressen beim Anbieter ersetzen, im Panel aktualisieren und andere Installationen mit dem alten Wert prüfen. Danach den normalen Ablauf erneut kontrollieren und Screenshots bereinigen.
Fehlende Nachrichten vom Ereignis zum Kanal verfolgen#
Prüfen Sie bei einer fehlenden Discord-Nachricht zuerst, ob das erwartete Ereignis stattfand und dessen Integration eingerichtet ist. Eine gespeicherte Webhook-Adresse beweist nicht, dass jedes Ereignis eine Nachricht erzeugt. Erfassen Sie Server oder Website und Ereigniszeit, bevor Sie Zugangsdaten ändern.
Ist das normale Ereignis im Panel sichtbar, aber nicht in Discord, prüfen Sie Zielkanal und gespeicherte Webhook-Adresse. Ein gelöschter Webhook, geänderter Kanal oder unvollständig kopierter Wert muss an der passenden Stelle korrigiert werden. Bewahren Sie den nicht geheimen bisherigen Konfigurationskontext für eine nachvollziehbare Änderung auf.
Kommt die Nachricht im falschen Kanal an, beschränken Sie dort den Zugriff und korrigieren Sie das Ziel vor weiteren Tests. Erzeugen Sie nicht wiederholt Sanktionen zur Zustellungsdiagnose. Geben Sie dem Support Ereignisart, Zeit und bereinigten Fehler statt vollständiger Webhook-Adresse oder vertraulicher Spielerdaten.
Verstehen, welche Werte beim Speichern erhalten bleiben#
Bot-Token und OAuth-Client-Secret sind vertrauliche Passwortfelder. In der aktuellen Einstellungsimplementierung bleibt ihr gespeicherter Wert erhalten, wenn das jeweilige Feld beim Speichern leer ist. Ein leer angezeigtes Feld bedeutet deshalb allein nicht, dass kein Geheimnis hinterlegt ist. Lesen Sie seine Erklärung vor einem Austausch.
Beim Wechsel einer Zugangsinformation tragen Sie den neuen Wert in das richtige Feld ein und speichern mit einem berechtigten Konto. Webhook-URL und Client-ID haben eigene Felder und eigenes Verhalten. Nehmen Sie nicht an, ein leerer Speichervorgang widerrufe Bot-Token oder OAuth-Secret; widerrufen Sie offengelegte Werte bei Discord.
Notieren Sie, welche Zugangsinformation wann geändert wurde, ohne ihren Wert aufzuschreiben. Prüfen Sie anschließend den jeweiligen Ablauf: Kanalzustellung für Webhooks, eine vorhandene Bot-Funktion für Bots oder ein tatsächliches Anmeldeergebnis für OAuth. Ein erfolgreicher Ablauf bestätigt die beiden anderen nicht.
Die Rückkehr einer Discord-Anmeldung sicher untersuchen#
Beginnen Sie einen neuen Anmeldeversuch auf der richtigen Website und bleiben Sie in derselben Browsersitzung. OAuth verwendet state zur Zuordnung von ausgehendem Aufruf und Rückkehr. Eine alte Callback-Adresse oder vermischte Anmeldeversuche können dazu führen, dass die Rückkehr nicht zur aktuellen Sitzung gehört.
Bei einer Meldung über ungültigen state oder einem ähnlichen Fehler notieren Sie diesen und beginnen über den normalen Anmeldeeinstieg neu, statt den Callback wiederholt zu aktualisieren. Prüfen Sie, ob Browsereinstellungen oder Erweiterungen nötige Cookies oder Navigation blockieren. Halten Sie währenddessen eine bestehende Administratorsitzung verfügbar.
Unterscheiden Sie die Discord-Kontoanmeldung der Plattform von individuellen Integrationsdaten einer gemieteten Website. Bestätigen Sie den betroffenen Ablauf, bevor Sie Client-ID oder Weiterleitung ändern. Teilen Sie keine Callback-URL mit Autorisierungscodes, state-Werten, Sitzungsdaten oder Geheimnissen in öffentlichen Supportkanälen.
Nachrichteninhalt nach dem Teambedarf prüfen#
Eine angekommene Nachricht bestätigt Zustellung; verständlicher Kontext für die richtigen Personen ist eine eigene Prüfung. Prüfen Sie eine normale Nachricht der installierten Integration auf Server oder Website, Ereigniszeit und Aktion. Lesen Sie das bestehende Format, statt einen im Panel nicht vorhandenen Vorlageneditor oder Filter vorauszusetzen.
Beschränken Sie Kanalzugriff auf das zuständige Team. Verbergen Sie Spielerkennungen und unnötige persönliche Details bei Exporten und Screenshots. Erklären Sie, dass eine Erkennungsmeldung nicht den vollständigen Kontext enthalten muss, und gleichen Sie ihre Zeit mit dem Panel ab. Bei mehreren Servern im Kanal müssen Bezeichnungen ausreichend unterscheidbar sein.
Bei unklarer Nachricht notieren Sie Ereignistyp, Zeit und bereinigten Text. Klären Sie vorhandene Ausgaben mit dem Support, statt neue Funktionen anzunehmen oder einen Spieler zu sanktionieren. Ziel ist, dass Mitarbeiter dieselbe Ressource und dasselbe Ereignis erkennen, ohne unnötig Geheimnisse offenzulegen.
Kontowahl und abgebrochene Discord-Anmeldung prüfen#
Prüfen Sie bei OAuth auch das falsche Discord-Konto und den Abbruch der Berechtigungsabfrage. Im Browser kann bereits ein anderes Konto angemeldet sein. Lesen Sie die Identität auf der Autorisierungsseite und bestätigen Sie das beabsichtigte Konto. Dies ist ein Identitätsablauf; ein anderer Webhook-Kanal behebt ihn nicht.
Bei Abbruch oder Ablehnung dokumentieren Sie das Ergebnis und beginnen am normalen Anmeldeeinstieg erneut. Teilen Sie keine alte Callback-URL mit anmeldebezogenen Werten. Prüfen Sie nach Erfolg Konto und Website-Kontext. Stoppen Sie vor Verwaltung eines unerwarteten Kontos. Ein neues Konto oder Tarifkauf bestätigt keine richtige Identitätszuordnung.
Notieren Sie Ablauf, erwartetes Konto, Ergebnis und Fehlerzeit ohne Token, Client-Secret, state oder Autorisierungscode. Plattformanmeldung und individuelle Integration einer gemieteten Website sind verschieden. Eine klare Ablaufbeschreibung hilft dem Support, ohne fremde Zugangsdaten zu ändern.
Bot als separaten Dienst prüfen#
Website, Webhook und Bot sind getrennt. Client ID, Guild ID und private Zugangsdaten müssen für dieselbe Site und denselben Discord-Server eingerichtet werden.
Verwenden Sie eine unterstützte Node.js-LTS-Version; der Bot benötigt mindestens Node 22 LTS. Der installierte private Dienst verwendet Node 24.21.0 LTS: /opt/tosun-discord-node/v24.21.0/bin/node. Das Dienstbeispiel nutzt dieselbe ausführbare Datei für doctor in ExecStartPre und für ExecStart. Führen Sie auch npm ci und doctor mit dieser Laufzeit im PATH aus. Eine fehlgeschlagene doctor-Prüfung verhindert die Anmeldung. Aktivieren Sie den Dienst erst mit vollständigen Zugangsdaten.
- Rollen und Kanäle per numerischer ID prüfen; keine pauschale Administrator-Freigabe.
- Der Betreiber richtet separate Site-Schlüssel und die Ledger-Migration ein. npm ci nutzt die Sperrdatei; npm run doctor prüft ohne Discord-Anmeldung.
- Leere Geheimnisfelder behalten ihren Wert. Neue Geheimnisse benötigen den Site-Verschlüsselungsschlüssel. Nach Token/API-Änderungen neu starten.
Unklare Ergebnisse vor Wiederholung prüfen#
Ein Timeout beweist nicht, dass eine Änderung ausblieb. Dieselbe abgeschlossene Interaktion wird nicht erneut ausgeführt; ein neuer Befehl hat jedoch eine neue ID.
- Processing und unknown werden nicht durch Zeitablauf erneut freigegeben. Ergebnis und Vorgangs-ID prüfen, bevor Geld-, Item-, Ban- oder Serverbefehle wiederholt werden.
- Screenshot, Live-Watch, sync und diag benötigen die berechtigte Panel-Sitzung. Keine Tokens, Schlüssel oder Datenbankpasswörter an den Support senden.
Discord-Geheimnisse von AC-Schlüsseln trennen#
Bot-Token, Webhook-Adresse, OAuth-Secret und Tosun-Lizenz sind unterschiedliche Zugangsdaten. Bot-Geheimnisse gehören in die private Bot-Konfiguration oder die autorisierten Discord-Panel-Felder, nicht in Shared-Lua, NUI oder den AC-Server-Config.
AC-Schlüssel bleiben in server.cfg oder configs/anticheat_server.lua. Kurzlebige Screenshot/Video-Tokens erlauben nur den vorgesehenen Upload. Betroffene Geheimnisse beim jeweiligen Anbieter erneuern und den Dienst kontrolliert neu starten. Mit Statusbefehl und Testkanal prüfen; unklare Geld- oder Ban-Aktionen nicht blind wiederholen.
Discord-Bot separat aus dem Paket installieren#
discord-bot läuft mit Node.js und wird nicht mit ensure gestartet. Erstellen Sie Ihre eigene Anwendung im Discord Developer Portal. Application ID, Guild ID sowie Rollen- und Kanal-IDs stammen von Ihrem Discord-Server. Token privat in der Umgebungsdatei halten.
Das Datenbankkonto der gemieteten Website ist standardmäßig an localhost des Anbieters gebunden. Ein Bot auf einem anderen FiveM-Rechner kann nicht automatisch zugreifen. Nutzen Sie einen verwalteten Dienst auf dem Website-Host oder eine genehmigte private Verbindung nur für Ihr Website-Konto. Kein Anbieter-root und kein öffentliches MySQL. Alte direkte SQL-Befehle mit Spieltabellen müssen separat geprüft werden.
Als Website-Eigentümer unter Website-Verwaltung → Discord-Bot Bot-Token, Client ID und Guild ID speichern. Über Download private bot setup die private Datei herunterladen und im eigenen Bot-Ordner als .env speichern. Anders als das leere ZIP-Beispiel enthält sie nur Schlüssel der ausgewählten Website. Nicht teilen oder in die Versionsverwaltung aufnehmen.
- Unterstützte Node.js-LTS-Version ab 22 installieren; Beispielkonfiguration mit dem Installationsskript vorbereiten.
- Bot mit bot und applications.commands einladen und nur benötigte Rechte vergeben.
- Website-Datenbank und HTTPS-API konfigurieren. Der private Kommandoschlüssel gehört nur zu diesem Bot und dieser Website; er ist keine Tosun-Lizenz und kein SaaS-Hauptschlüssel.
- Vor dem Start npm run doctor ausführen. Danach Online-Status und Rollen prüfen; doctor meldet sich nicht bei Discord an.
cd discord-bot
sh setup.sh
# Configure the private .env and site bot settings first.
npm run doctor
npm start