Intents de passerelle Discord : ce qu'un bot a le droit d'entendre
Les intents de passerelle sont des options qu'un bot déclare à la connexion, pour indiquer à Discord les groupes d'événements en direct qu'il souhaite recevoir. Un bot qui n'a pas demandé un intent ne reçoit tout simplement jamais ces événements, ce qui protège les données et réduit le trafic.
Ce qu'est la passerelle
Un bot maintient une connexion permanente avec Discord, appelée la passerelle. Par cette connexion, Discord pousse les événements au fur et à mesure : un message a été envoyé, un membre a rejoint, quelqu'un a commencé à écrire, un salon vocal a changé. Sans limites, chaque bot recevrait tous les événements de tous les serveurs.
Les intents sont le filtre. Dans le premier message qu'un bot envoie après sa connexion, il liste les intents qu'il veut sous forme d'un seul nombre. Discord n'envoie alors que les événements correspondants.
Les intents courants
- Guilds : la création ou la modification de serveurs, de salons et de rôles. Presque tous les bots l'utilisent.
- Messages de serveur : les messages dans les salons de serveur. Le texte de ces messages nécessite un intent privilégié, voir plus bas.
- États vocaux : qui rejoint ou quitte un salon vocal. Les outils de musique et de voix en ont besoin.
- Modération : les bannissements et les entrées du journal d'audit.
- Réactions aux messages : les réactions ajoutées ou retirées.
Trois intents sont spéciaux : la présence, les membres du serveur et le contenu des messages. Ce sont des intents privilégiés, car ils exposent davantage de données personnelles et nécessitent une approbation supplémentaire pour les bots plus importants.
Pourquoi cela compte pour les propriétaires de serveur
Quand un bot est en ligne mais ignore les messages, les arrivées ou les changements vocaux, un intent manquant est une cause fréquente. Cela peut aussi expliquer une déconnexion avec le code d'erreur 4014 lorsqu'un bot demande un intent privilégié qui n'est pas activé dans ses paramètres. L'article sur les erreurs de passerelle 4004 et 4014 d'un bot hors ligne les explique.
Les intents sont aussi un signal de confidentialité. Un bot qui ne demande que ce dont ses fonctionnalités ont besoin inspire davantage confiance.
Intents et Noxyr
Le bot Noxyr principal est géré pour vous. Si vous configurez un bot personnalisé avec votre propre application, l'intent Membres du serveur et l'intent Contenu des messages doivent être activés dans le portail développeur Discord, comme l'explique le guide de configuration. Ils sont nécessaires à des fonctionnalités comme les messages de bienvenue et les commandes à préfixe. Si un bot personnalisé est hors ligne, commencez par le guide du bot hors ligne.
Pour plus de détails, voir les intents de passerelle privilégiés expliqués.
Vérifier un bot que vous n'avez pas écrit
Si un bot que vous avez installé se comporte bizarrement, demandez à son développeur quels intents il utilise et pourquoi. Les bons bots les listent dans leur documentation. Pour votre propre bot, ouvrez le portail développeur, allez sur la page Bot et comparez les interrupteurs à ce que le code demande. Un écart est la première chose à corriger.
Questions fréquentes
Que se passe-t-il si un bot ne demande pas un intent ?
Discord ne lui envoie pas les événements correspondants. Le bot reste en ligne mais ne peut pas réagir à ces événements.
Où activer les intents pour mon propre bot ?
Dans le portail développeur Discord, ouvrez votre application, allez sur Bot et activez les intents privilégiés dont il a besoin.
Tous les intents sont-ils privilégiés ?
Non. Seuls la présence, les membres du serveur et le contenu des messages le sont. Les autres peuvent être utilisés librement.