Intents de Gateway de Discord: qué puede escuchar un bot
Los intents de Gateway son opciones que un bot declara al conectarse, indicando a Discord qué grupos de eventos en vivo quiere recibir. Un bot que no pidió un intent simplemente nunca recibe esos eventos, lo que mantiene los datos privados y el tráfico reducido.
Qué es la Gateway
Un bot mantiene una conexión constante con Discord, llamada Gateway. Por ella, Discord envía eventos a medida que ocurren: se envió un mensaje, entró un miembro, alguien empezó a escribir, un canal de voz cambió. Sin límites, cada bot recibiría todos los eventos de todos los servidores.
Los intents son el filtro. En el primer mensaje que envía un bot tras conectarse, indica los intents que quiere como un único número. Discord entonces solo envía los eventos que coinciden.
Los intents habituales
- Guilds: servidores, canales y roles creados o modificados. Casi todos los bots lo usan.
- Mensajes del servidor: mensajes en los canales del servidor. El texto de esos mensajes necesita un intent privilegiado, ver abajo.
- Estados de voz: quién entra o sale de los canales de voz. Las herramientas de música y de voz lo necesitan.
- Moderación del servidor: baneos y entradas del registro de auditoría.
- Reacciones a mensajes del servidor: reacciones añadidas o quitadas.
Hay tres intents especiales: presencia, miembros del servidor y contenido de mensajes. Son intents privilegiados, porque exponen más datos personales y necesitan una aprobación adicional en bots grandes.
Por qué importa a los dueños de servidor
Cuando un bot está en línea pero ignora los mensajes, las entradas o los cambios de voz, un intent que falta suele ser el motivo. También puede explicar una desconexión con el código de error 4014, cuando un bot pide un intent privilegiado que no está activado en sus ajustes. El artículo sobre los errores de Gateway 4004 y 4014 con bots sin conexión lo explica.
Los intents también son una señal de privacidad. Un bot que solo pide lo que necesitan sus funciones es más fácil de confiar.
Intents y Noxyr
Noxyr gestiona el bot principal por ti. Si configuras un bot personalizado con tu propia aplicación, los intents de miembros del servidor y de contenido de mensajes deben estar activados en el Portal para desarrolladores de Discord, como explica la guía de configuración. Son necesarios para funciones como los mensajes de bienvenida y los comandos con prefijo. Si un bot personalizado está desconectado, empieza por la guía de bot sin conexión.
Para más detalle, consulta los intents privilegiados de Gateway explicados.
Revisar un bot que no escribiste tú
Si un bot que instalaste se comporta de forma extraña, pregunta a su desarrollador qué intents usa y por qué. Los buenos bots los indican en su documentación. Para tu propio bot, abre el Portal para desarrolladores, ve a la página Bot y compara los interruptores con lo que pide el código. Una diferencia es lo primero que hay que corregir.
Preguntas frecuentes
¿Qué pasa si un bot no pide un intent?
Discord no le envía los eventos correspondientes. El bot sigue en línea pero no puede reaccionar a esas cosas.
¿Dónde activo los intents para mi propio bot?
En el Portal para desarrolladores de Discord, abre tu aplicación, ve a Bot y activa los intents privilegiados que necesite.
¿Todos los intents son privilegiados?
No. Solo presencia, miembros del servidor y contenido de mensajes son privilegiados. Los demás se pueden usar libremente.