Permissions et intents Discord : comprendre ce que votre bot peut faire

Par py0ui · · 5 min de lecture

Quand un bot ne répond pas ou renvoie une erreur de permissions, la cause tient presque toujours à trois notions souvent confondues : les permissions, la hiérarchie des rôles et les intents. Les distinguer fait gagner beaucoup de temps.

Les permissions : ce que le bot a le droit de faire

Les permissions sont accordées par les rôles du serveur : envoyer des messages, gérer les rôles, bannir des membres, gérer les salons. Quand vous invitez le bot, la page d'autorisation liste les permissions demandées. Le bot reçoit alors un rôle propre qui porte ces droits, et vous pouvez les ajuster ensuite dans les paramètres du serveur.

La hiérarchie des rôles

Sur Discord, un rôle ne peut agir que sur les rôles situés plus bas dans la liste. Si le rôle du bot est placé sous celui d'un membre, il ne pourra ni le bannir ni lui attribuer de rôle, même avec la permission correspondante. C'est la cause numéro un des messages « Missing Permissions ». La solution est de glisser le rôle du bot plus haut, sans le mettre pour autant au sommet.

Les intents : ce que le bot est autorisé à savoir

Les intents sont une notion différente : ils déterminent quels événements Discord transmet au bot. Un bot sans l'intent « Server Members » ne sera pas informé des arrivées et des départs, donc les messages de bienvenue ne fonctionneront pas. Sans « Message Content », il ne lit pas le contenu des messages et ne peut pas calculer l'XP ou répondre à des mots-clés.

Trois intents sont privilégiés : présence, membres du serveur et contenu des messages. Vous devez les activer manuellement dans l'onglet Bot du portail développeur. Pour les bots présents sur 100 serveurs ou plus, Discord exige une vérification et une approbation spécifique.

Configurer l'invitation proprement

Dans l'onglet OAuth2 du portail, générez le lien d'invitation avec les portées bot et applications.commands. La première ajoute le bot au serveur, la seconde permet l'usage des commandes slash. Pour les permissions, la tentation est de cocher Administrateur : c'est pratique pour tester, mais déconseillé en production.

  • Pour la modération : bannir, expulser, gérer les messages, exclure temporairement des membres.
  • Pour les tickets : gérer les salons, voir les salons, envoyer des messages.
  • Pour la musique : se connecter et parler dans les salons vocaux.
  • Pour les rôles automatiques : gérer les rôles, avec un rôle de bot placé assez haut.

Diagnostiquer un problème en trois questions

Si une fonction ne marche pas, posez-vous dans l'ordre : le bot a-t-il la permission nécessaire dans ce salon précis (les permissions de salon peuvent contredire celles du serveur) ? Son rôle est-il assez haut dans la hiérarchie ? L'intent correspondant est-il activé dans le portail développeur ? Dans la grande majorité des cas, l'une de ces trois vérifications révèle la cause.