Los intents privilegiados de gateway de Discord son tres permisos que hay que activar expresamente: Presencia, Miembros del servidor y Contenido de mensajes. El propietario del bot debe activarlos en el Portal para desarrolladores antes de que Discord envíe esos datos a través del gateway. Existen porque las listas de miembros y el texto de los mensajes son datos sensibles por defecto. Si te olvidas de uno, el bot no muestra un error llamativo: simplemente deja de recibir los eventos que necesita. Por eso “el bot está en línea pero no hace nada” suele deberse a un interruptor de intent.

Two privileged intents stay switched on and let data through while a third stays off and blocks it. Developer Portal Server Members Message Content Presence Bot Welcome msgs ✓ Auto-responders ✓ Live presence ✗

Qué es realmente un intent de gateway

Cuando un bot se conecta a Discord, no recibe automáticamente todos los eventos que ocurren en todos los servidores en los que está. Se suscribe a categorías de eventos llamadas intents: eventos de mensajes, eventos de estado de voz, eventos de actualización del servidor, etc. La mayoría de los intents pueden declararse en el código sin problema, y Discord los concede sin preguntar. Tres son diferentes. Discord los llama intents privilegiados porque los datos que hay detrás (exactamente quién está en un servidor y qué escriben los miembros) son lo bastante potentes como para que Discord quiera que el propietario del bot los active expresamente en el Portal para desarrolladores, y no solo en el código.

Si el código de un bot solicita un intent privilegiado pero el propietario no lo ha activado para esa aplicación, Discord rechaza el inicio de sesión directamente. El bot no se conecta en un estado degradado: no se conecta en absoluto, y el gateway se cierra con un error de “disallowed intents”.

Los tres intents privilegiados

  • Intent de presencia. Estado en línea, ausente o desconectado, y actividades personalizadas de cada miembro. Lo usan los bots que muestran datos de presencia en directo. La mayoría de los bots de tickets, moderación y comercio, Noxyr incluido, no lo necesitan.
  • Intent de miembros del servidor. La lista completa de miembros, además de los eventos de entrada y salida, los cambios de rol y las actualizaciones de apodo. Es el intent en el que se basan los mensajes de bienvenida, los recuentos de miembros y la detección de incursiones.
  • Intent de contenido de mensajes. El texto real de un mensaje, no solo el hecho de que se envió un mensaje. Sin él, un bot puede ver que alguien escribió en un canal, pero no qué escribió.

El código de Noxyr solicita dos de los tres: el Intent de miembros del servidor y el Intent de contenido de mensajes. El Intent de presencia no forma parte de ninguna función de Noxyr, así que nunca se solicita y nunca hace falta activarlo.

Qué se rompe sin el Intent de miembros del servidor

El Intent de miembros del servidor es lo que permite a un bot recibir los eventos GUILD_MEMBER_ADD y GUILD_MEMBER_REMOVE, los eventos de entrada y salida de los que dependen casi todas las funciones relacionadas con los miembros.

  • Mensajes de bienvenida. Un mensaje de bienvenida se activa al entrar. Sin el intent, el bot nunca recibe el evento de entrada, así que no se publica nada y no se asigna ningún rol automático.
  • Recuentos de miembros. Un canal o un widget con el número de miembros se actualiza con esos mismos eventos de entrada y salida. Sin el intent, se queda congelado con el último recuento que vio.
  • Protección anti-nuke e incursiones. Detectar una incursión de entradas masivas o vigilar cambios sospechosos de rol y de apodo depende de los eventos de miembros. Si desactivas el intent, toda esa ruta de detección se apaga.
  • Flujos de verificación. Cualquier filtro que compruebe la fecha de entrada de un miembro, sus roles o la antigüedad de su cuenta necesita el objeto de miembro que proporciona el intent.

Qué se rompe sin el Intent de contenido de mensajes

El Intent de contenido de mensajes controla el texto real de un mensaje. Sin este intent, un bot todavía puede ver que un canal recibió un mensaje y quién lo envió, pero no puede leer lo que se dijo.

  • Respuestas automáticas. Detectar una palabra desencadenante como “reembolso” o “cómo pago” requiere leer el texto del mensaje. Sin contenido, no hay coincidencia y no hay respuesta.
  • Respuestas del chat con IA. Un asistente de IA que responde preguntas en un canal o cuando se le menciona necesita la pregunta en sí. Sin el intent, sabe que alguien habló, pero no tiene nada que enviar al modelo.
  • Transcripciones de tickets. Una transcripción que registre lo que el equipo y los miembros dijeron de verdad en un ticket necesita el contenido de los mensajes. Sin él, obtendrías una lista de marcas de tiempo y nombres de usuario sin contenido.
  • Moderación basada en prefijos. Cualquier cosa que analice mensajes en busca de palabras prohibidas, enlaces de invitación o patrones de spam lee el contenido de la misma forma que una respuesta automática.

Los comandos de barra no se ven afectados en ningún caso, ya que Discord envía la entrada de los comandos por separado de los mensajes normales. Las funciones que dependen de este intent son específicamente las que leen lo que escriben los miembros en mensajes ordinarios.

Cómo activar los intents en el Portal para desarrolladores

  1. Abre el Portal para desarrolladores de Discord y selecciona la aplicación del bot.
  2. Haz clic en Bot en la barra lateral izquierda.
  3. Desplázate hasta Intents privilegiados de Gateway.
  4. Activa el Intent de miembros del servidor y el Intent de contenido de mensajes (añade el Intent de presencia solo si un bot necesita datos de estado en directo).
  5. Guarda los cambios y, después, reinicia o vuelve a conectar el bot para que aplique los nuevos intents en su próximo inicio de sesión.

El cambio se aplica en la siguiente conexión al gateway, no de forma instantánea para un bot que ya ha iniciado sesión. Un bot que estaba en mitad de una sesión cuando se desactivó un intent normalmente recibirá una desconexión de Discord y tendrá que volver a conectarse una vez que el intent esté activado de nuevo.

La regla de verificación de 100 servidores

Activar el interruptor en el portal basta para un bot que está en menos de 100 servidores. Cuando el número de instalaciones de un bot supera los 100 servidores, Discord exige que la aplicación pase por la verificación de bots, un proceso de revisión en el que el propietario envía el bot para su aprobación, antes de permitirle usar intents privilegiados a esa escala. Un bot sin verificar que alcanza el umbral sigue funcionando en los servidores en los que ya está, pero no puede unirse a otros nuevos hasta que se conceda la verificación o hasta que se eliminen los intents privilegiados que no necesita estrictamente.

Es una norma de la plataforma de Discord, no algo que controle ningún proveedor de alojamiento de bots. Existe para que los intents sensibles a los datos, como Miembros del servidor y Contenido de mensajes, no se entreguen a gran escala sin una revisión de Discord sobre lo que hace el bot con ellos.

Por qué Noxyr comprueba los dos intents antes de aceptar un token

La función Custom Bot de Noxyr ejecuta su conjunto completo de funciones con un token de bot que tú proporcionas. Como los mensajes de bienvenida, los recuentos de miembros, el chat con IA, las transcripciones de tickets y las respuestas automáticas dependen de los dos intents anteriores, el panel comprueba que el Intent de miembros del servidor y el Intent de contenido de mensajes estén activados antes de aceptar tu token. Un token pegado con cualquiera de los dos intents desactivado se rechaza desde el principio, en lugar de aceptarse y dejar que falle en silencio más adelante con un error de gateway confuso.

Si un intent se desactiva después de que el bot ya esté en marcha (por ejemplo, alguien lo desmarca en el portal meses después), el gateway de Discord cierra la conexión con los códigos 4013 o 4014. Los nodos de alojamiento de Noxyr detectan ese código de cierre concreto, apagan el bot y publican un mensaje de estado en lenguaje sencillo que indica exactamente qué ajuste hay que corregir. Así no se queda atascado en un bucle de reconexión silencioso. El desglose completo de ese error y de las demás causas habituales de desconexión está en nuestra guía de solución de problemas del error de gateway 4004/4014.

Preguntas frecuentes

¿Necesito el Intent de presencia para el Custom Bot de Noxyr? No. Noxyr solo solicita el Intent de miembros del servidor y el Intent de contenido de mensajes. El Intent de presencia puede permanecer desactivado.

¿Por qué mi bot muestra “disallowed intents” aunque activé los interruptores? El gateway solo lee el estado actual en un inicio de sesión nuevo. Reinicia el bot después de guardar los ajustes del portal para que se vuelva a conectar con los nuevos intents aplicados.

¿Activar el Intent de contenido de mensajes significa que Discord comparte el historial de mensajes con el bot? No. Solo afecta a los mensajes enviados mientras el bot está conectado y tiene acceso a ese canal. No concede retroactivamente acceso a mensajes anteriores en los que el bot no estaba presente.

¿Mi bot puede ser baneado por solicitar intents privilegiados? No. Solicitarlos y usarlos para las funciones que los necesitan (mensajes de bienvenida, respuestas automáticas, respuestas de IA) es exactamente para lo que están. La verificación existe para los bots a gran escala, no como castigo.

Consulta el tutorial completo de configuración en la documentación de Custom Bot, o añade Noxyr gratis y olvídate de los intents ejecutando el bot principal en lugar de un bot personalizado basado en token.