Aller au guide

Documentation 9.6.24

Intégration Discord

Utilisez les intégrations disponibles dans le panel installé.

Webhook#

Créez le webhook dans le bon salon et enregistrez-le dans les réglages. URL et jeton sont secrets. Envoyez un test contrôlé avant les notifications.

Permissions#

Accordez seulement les droits nécessaires. Vérifiez salon, jeton et réponse du fournisseur en cas d’échec. Renouvelez les secrets exposés et masquez-les dans les journaux.

Séparer les trois intégrations#

Paramètres → Intégrations propose des champs distincts pour l’URL webhook, le jeton du bot et les identifiants OAuth. Ils concernent notifications, identité du bot et connexion. Un webhook fonctionnel ne confirme ni commandes ni OAuth.

Gardez webhook, jeton et secret confidentiels. L’invitation publique de la communauté est différente: ne placez pas un webhook secret dans le champ d’invitation du site.

Vérifier les notifications avec précaution#

Choisissez un canal adapté au personnel et examinez ses accès avant d’envoyer des informations de joueurs.

  1. Créez votre webhook avec le guide officiel et enregistrez son URL complète.
  2. Contrôlez adresse tronquée, espaces et ancienne valeur d’un autre canal.
  3. Utilisez un test disponible ou un événement normal sans risque; ne bannissez pas un joueur et ne lancez pas un paiement pour tester.
  4. Vérifiez canal, heure et contenu; examinez le parcours défaillant sans répéter continuellement l’événement.

Bot, OAuth et secrets divulgués#

Accordez seulement les droits nécessaires au bot. Un jeton enregistré ne configure pas son exécution ni toutes les commandes. Pour OAuth, séparez identifiant et secret et faites correspondre la redirection à l’intégration installée.

Testez la connexion dans une autre session en conservant une session administrateur. Pour l’assistance, précisez le parcours, l’heure et l’erreur sans secrets.

Remplacez toute valeur publiée chez le fournisseur, mettez le panneau à jour et examinez les autres installations utilisant l’ancienne valeur. Revérifiez le parcours normal et masquez les secrets des captures.

Suivre une notification absente de l’événement au canal#

Si un message Discord manque, vérifiez d’abord que l’événement attendu a eu lieu et que son intégration est configurée. Une adresse webhook enregistrée ne prouve pas que chaque événement produit une notification. Notez serveur ou site concerné et heure avant de modifier les accès.

Si l’événement ordinaire apparaît dans le panneau mais pas sur Discord, vérifiez canal destinataire et webhook enregistré. Un webhook supprimé, un canal changé ou une adresse tronquée doivent être corrigés à l’étape appropriée. Conservez le contexte précédent sans secret pour rendre la modification compréhensible.

Si le message arrive dans un autre canal, limitez son accès et corrigez la destination avant de poursuivre. Ne générez pas de sanctions répétées pour diagnostiquer la livraison. Donnez au support catégorie d’événement, heure et erreur expurgée, sans webhook complet ni données privées de joueurs.

Comprendre les valeurs conservées à l’enregistrement#

Le jeton du bot et le client secret OAuth sont des champs de mot de passe confidentiels. Dans l’implémentation actuelle, laisser l’un vide lors d’un enregistrement préserve sa valeur stockée. Un champ affiché vide ne signifie donc pas, à lui seul, qu’aucun secret n’est configuré ; lisez son explication avant remplacement.

Pour renouveler un accès, collez la nouvelle valeur dans son champ et enregistrez avec un compte autorisé. Webhook URL et client ID ont des champs et comportements distincts. Ne supposez pas qu’un enregistrement vide révoque le jeton ou le secret OAuth ; révoquez un accès exposé auprès de Discord.

Notez quel accès a changé et quand, sans sa valeur. Vérifiez ensuite le processus concerné : livraison au canal pour webhook, fonction disponible pour bot ou véritable résultat de connexion pour OAuth. La réussite d’un processus ne valide pas les deux autres.

Diagnostiquer le retour de connexion Discord sans risque#

Commencez une nouvelle tentative depuis le bon site et restez dans la même session de navigateur. OAuth utilise state pour rapprocher demande et retour. Ouvrir un ancien callback ou mélanger plusieurs tentatives peut produire un retour sans lien avec la session actuelle.

En cas de state invalide ou de message similaire, notez l’erreur et repartez de l’entrée de connexion normale plutôt que d’actualiser le callback. Vérifiez que réglages ou extensions ne bloquent pas les cookies ou la navigation nécessaires. Gardez une session administrateur existante disponible pendant l’étude.

Distinguez la connexion Discord de la plateforme des identifiants personnalisés d’un site loué. Confirmez le processus défaillant avant de changer client ID ou redirection. Ne partagez pas de callback contenant codes d’autorisation, valeurs state, informations de session ou secrets dans un canal de support public.

Examiner le contenu selon les besoins de l’équipe#

L’arrivée confirme la livraison ; un contexte clair aux bonnes personnes est une autre vérification. Examinez un message ordinaire de l’intégration : site ou serveur, heure et type d’action identifiables. Lisez le format présent sans supposer un éditeur de modèles ou filtre absent du panneau.

Limitez le canal aux personnes concernées. Masquez identifiants de joueurs et détails personnels inutiles dans exports et captures. Une détection ne contient pas forcément tout le contexte ; rapprochez l’heure de la trace du panneau. Plusieurs serveurs dans un canal nécessitent des libellés suffisamment distincts.

En cas de message ambigu, notez type, heure et texte expurgé. Clarifiez la sortie réelle avec le support sans inventer une fonction ni sanctionner un joueur pour tester. L’objectif est une identification commune de la ressource et de l’événement sans divulgation inutile.

Vérifier compte choisi et connexion Discord annulée#

Examinez aussi mauvais compte et annulation de permissions, pas seulement retour réussi. Un autre compte Discord peut déjà être ouvert. Lisez l’identité sur l’autorisation et confirmez le compte attendu. C’est un processus d’identité ; changer de canal webhook ne le corrige pas.

Après annulation ou refus, notez le résultat et recommencez à l’entrée normale. Ne distribuez pas un ancien callback contenant des valeurs de connexion. Après succès, contrôlez compte et contexte du site. Arrêtez avant d’administrer un compte inattendu. Nouveau compte ou achat ne valide pas cette association.

Notez processus, compte attendu, résultat et heure sans token, client secret, state ou code d’autorisation. Connexion de plateforme et intégration personnelle d’un site loué diffèrent. Nommer le parcours aide le support sans changer des accès étrangers.

Vérifier le bot comme service distinct#

Site, webhook et bot sont distincts. Client ID, Guild ID et identifiants privés doivent correspondre au même site et serveur Discord.

Utilisez une version LTS prise en charge de Node.js ; le bot nécessite au moins Node 22 LTS. Le service privé installé utilise Node 24.21.0 LTS : /opt/tosun-discord-node/v24.21.0/bin/node. L’exemple emploie le même exécutable pour doctor dans ExecStartPre et pour ExecStart. Exécutez aussi npm ci et doctor avec cet environnement dans PATH. Un échec de doctor empêche la connexion. N’activez le service qu’après avoir fourni les identifiants requis.

  1. Vérifiez les ID numériques des rôles et canaux; n’accordez pas Administrator à toute l’équipe.
  2. L’opérateur installe les clés propres au site et migre le registre. npm ci utilise le verrou; npm run doctor vérifie sans connexion Discord.
  3. Un champ secret vide conserve sa valeur; les nouveaux secrets nécessitent la clé de chiffrement du site. Redémarrez après modification du token/API.

Examiner un résultat incertain avant de répéter#

Un délai dépassé ne prouve pas l’échec. La même interaction terminée ne répète pas l’action; une nouvelle commande crée toutefois un nouvel ID.

  1. Processing et unknown ne sont pas relancés par ancienneté. Vérifiez résultat et ID avant de répéter argent, objets, bans ou commandes serveur.
  2. Screenshot, live-watch, sync et diag exigent une session autorisée du panneau. Ne partagez pas tokens, clés ou mots de passe avec le support.

Séparer les secrets Discord et AC#

Token du bot, webhook, secret OAuth et licence Tosun sont distincts. Les secrets du bot restent dans sa configuration privée ou les champs Discord autorisés, jamais dans Lua partagé, NUI ni le fichier serveur AC.

Les clés AC vont dans server.cfg ou configs/anticheat_server.lua. Les tokens courts de capture/vidéo autorisent uniquement l’envoi prévu. Renouvelez chaque secret chez son fournisseur et redémarrez le service de manière contrôlée. Testez état et canal de test; ne répétez pas aveuglément une opération d’argent ou de ban au résultat incertain.

Installer le bot Discord comme service séparé#

discord-bot fonctionne sous Node.js et ne se lance pas avec ensure. Créez votre application dans Discord Developer Portal et utilisez vos Application ID, Guild ID et identifiants de rôles/canaux. Conservez le jeton dans un fichier d’environnement privé.

Le compte de base du site est limité par défaut au localhost du fournisseur. Un bot sur une autre machine FiveM n’y accède pas automatiquement. Utilisez un service géré sur l’hôte du site ou une connexion privée approuvée pour votre seul compte. N’utilisez ni root du fournisseur ni MySQL public. Vérifiez séparément les commandes anciennes qui nécessitent des tables du jeu.

Comme propriétaire, enregistrez le token, Client ID et Guild ID dans Gestion du site → Bot Discord. Téléchargez le fichier privé avec Download private bot setup et placez-le sous le nom .env dans votre dossier bot. Il contient uniquement les clés du site choisi, contrairement à l’exemple vide du ZIP. Ne le partagez pas et ne le versionnez pas.

  1. Installez une version LTS prise en charge de Node.js 22 ou plus; préparez les exemples avec le script.
  2. Invitez avec les portées bot et applications.commands et accordez les permissions nécessaires.
  3. Configurez la base du site et l’API HTTPS. La clé privée de commandes appartient uniquement à ce bot et ce site; ce n’est pas une licence ou une clé SaaS principale.
  4. Lancez npm run doctor avant le service. Vérifiez ensuite connexion et rôles; doctor ne se connecte pas à Discord.
cd discord-bot
sh setup.sh
# Configure the private .env and site bot settings first.
npm run doctor
npm start