Cómo crear un chatbot en Discord
Un bot de Discord puede hacer todo lo disponible en otros canales, además de interactuar directamente con tu servidor: responder en canales, hilos y mensajes directos, añadir reacciones, recibir y enviar archivos, y editar o eliminar sus propios mensajes. Las funciones adicionales incluyen moderación (tiempos de espera, expulsiones, baneos y eliminación de mensajes), gestión de roles, creación de canales para tickets y comandos de barra.
La configuración toma unos diez minutos y consta de dos partes: primero, crea el bot en el lado de Discord, luego conéctalo a tu proyecto en Mavibot.
Paso 1. Crear una aplicación
Abre el Discord Developer Portal y haz clic en New Application. Ingresa un nombre: los miembros del servidor lo verán.
En la sección Installation, establece Install Link en None. Tú mismo crearás el enlace de instalación del bot en el Paso 4 con los permisos necesarios.
Paso 2. Configurar el bot
Ve a la sección Bot.
Desactiva Public Bot. De lo contrario, cualquiera podrá agregar tu bot a su servidor.
Habilita los intents privilegiados necesarios; sin ellos, Discord no enviará ciertos datos al bot:
| Intent | Por qué es necesario |
|---|---|
| Message Content Intent | Texto del mensaje. Sin él, el bot puede ver que se envió un mensaje pero no puede ver su contenido, por lo que los disparadores basados en texto no funcionarán. |
| Server Members Intent | Eventos de miembros: uniones, salidas, cambios de roles y cambios de apodos. Sin él, los saludos a nuevos miembros y la asignación automática de roles no funcionarán. |
| Presence Intent | Estado en línea. No es necesario para que el bot funcione y no necesita estar habilitado. |
Paso 3. Obtener el token del bot
En la misma sección Bot, haz clic en Reset Token y copia el token que aparece. Se muestra solo una vez: guárdalo, ya que lo necesitarás en el Paso 6.
¡Importante! El token proporciona acceso completo a tu bot. No lo publiques ni lo compartas. Si el token se ve comprometido, haz clic en Reset Token nuevamente. El token antiguo dejará de funcionar inmediatamente y deberás reconectar el bot en Mavibot usando el nuevo token.
Paso 4. Seleccionar permisos
Abre OAuth2 → URL Generator.
En Scopes, selecciona:
-
bot— el bot en sí; -
applications.commands— si planeas usar comandos de barra. Sin este ámbito, los comandos no se pueden registrar en el servidor.
La sección Bot Permissions aparecerá a continuación. Selecciona solo los permisos que tu bot realmente necesita: es mejor no otorgar permisos innecesarios.
Permisos mínimos para mensajería
| Permiso | Qué no funcionará sin él |
|---|---|
| View Channels | El bot no podrá ver los canales en absoluto |
| Send Messages | El bot no podrá responder |
| Read Message History | Las respuestas a mensajes y las citas no funcionarán |
| Embed Links, Attach Files | Los enlaces con vistas previas y archivos no se enviarán |
| Add Reactions | El bot no podrá añadir reacciones |
Permisos adicionales para moderación y automatización
| Permiso | Para qué se usa |
|---|---|
| Manage Messages | Eliminar mensajes de otros usuarios y gestionar mensajes fijados |
| Moderate Members | Tiempos de espera (silencios) |
| Kick Members | Expulsar miembros del servidor |
| Ban Members | Banear y desbanear miembros |
| Manage Roles | Asignar y eliminar roles |
| Manage Nicknames | Cambiar apodos de miembros |
| Manage Channels | Crear y eliminar canales, incluidos canales de tickets |
| Create Instant Invite | Crear enlaces de invitación |
Los permisos también se pueden cambiar más tarde en la configuración del rol del bot en el servidor sin necesidad de reconectar el bot.
Paso 5. Agregar el bot a tu servidor
Copia la URL generada en la parte inferior de la página URL Generator, ábrela en tu navegador y selecciona el servidor.
Solo el propietario del servidor o un miembro con el permiso Manage Server puede agregar el bot.
Después de agregar el bot, verifica el orden de los roles:
Server Settings → Roles
El rol del bot debe estar por encima de los roles que asignará y por encima de los roles de los miembros que necesita moderar.
Esta es una restricción de Discord: un bot no puede asignar un rol que esté al mismo nivel o por encima de su propio rol, y no puede aplicar tiempo de espera o banear a un miembro cuyo rol sea superior al del bot.
Paso 6. Dejar vacío el campo Interactions Endpoint URL
Regresa a la sección General Information de tu aplicación y asegúrate de que el campo Interactions Endpoint URL esté vacío.
Si se especifica algo en este campo, Discord deja de enviar clics en botones e interacciones de comandos de barra al bot; se envían a la URL especificada en su lugar.
Desde la perspectiva del usuario, esto se ve como que los botones en los mensajes del bot no funcionan, mientras que los comandos de barra devuelven "Application did not respond."
Paso 7. Conectar el bot a tu proyecto
En tu proyecto de Mavibot, abre la sección Channels, haz clic en Discord y pega el token del Paso 3.
Después de unos segundos, el bot debería aparecer en línea en tu servidor de Discord. Si no es así, asegúrate de que el token se haya copiado completamente y no contenga espacios adicionales.
Verificar que todo funcione
Envía un mensaje en cualquier canal del servidor que deba activar una de las respuestas de tu bot; el bot debería responder.
Si el bot está en línea pero no responde, lo más probable es que Message Content Intent no esté habilitado.
Únete al servidor con otra cuenta o pide a un colega que se una; el saludo a nuevos miembros debería activarse. Si no es así, verifica Server Members Intent.
Haz clic en un botón en un mensaje del bot. Si no sucede nada, verifica el Interactions Endpoint URL.
Cosas importantes que debes saber
Una conversación de canal es compartida por todos
Todos los miembros del canal escriben en la misma conversación, como en un chat grupal.
Variables como "quién envió el mensaje" se refieren al autor del último mensaje y se sobrescriben con el siguiente mensaje: léelas y procésalas inmediatamente en el mismo bloque.
Los mensajes directos con el bot y los eventos de miembros como uniones, salidas y cambios de roles se manejan en una conversación separada para ese miembro.
Los mensajes directos están restringidos por Discord
Un bot puede enviar un mensaje directo a un miembro solo si el miembro comparte un servidor con el bot y no ha desactivado los mensajes directos de los miembros del servidor en su configuración de privacidad.
Si el miembro ha desactivado los mensajes directos, el mensaje no se puede entregar; esta es una restricción de Discord y no se puede eludir.
Datos completos del webhook
Si asignas algún valor a la variable save_webhook, todos los datos del evento entrante se guardarán en la variable discord_webhook.
Esto rara vez es necesario; casi todo lo que puedas necesitar del webhook ya está disponible a través de variables separadas.
Problemas comunes
| Qué sucede | Por qué |
|---|---|
| El bot está en línea pero no responde al texto | Message Content Intent no está habilitado |
| No se reciben eventos de unión, salida y cambio de roles | Server Members Intent no está habilitado |
| Los botones no funcionan y los comandos de barra devuelven "Application did not respond" | Interactions Endpoint URL está lleno |
| Los comandos de barra no se pueden registrar | El bot se agregó sin el ámbito applications.commands: genera una nueva URL de instalación y agrega el bot nuevamente |
| El bot no puede asignar un rol | El rol del bot no está por encima del rol objetivo, o el bot no tiene Manage Roles. Los roles gestionados por integraciones, incluidos los roles de otros bots, y el rol @everyone no se pueden asignar |
| El bot no puede aplicar tiempo de espera o banear a un miembro | El rol del miembro es superior al rol del bot, o el bot no tiene Moderate Members / Ban Members |
| El bot no puede ver un canal específico | Los permisos a nivel de canal anulan los permisos a nivel de servidor. Verifica los permisos del rol del bot en la configuración de ese canal |
| No se pueden eliminar mensajes | El bot no tiene Manage Messages. Discord permite la eliminación masiva solo para mensajes de menos de 14 días |
Qué sigue
Un chatbot de Discord admite las mismas funciones principales que los bots en otros canales: puede enviar mensajes a canales, hilos y mensajes directos, añadir reacciones, enviar y recibir archivos adjuntos, y editar o eliminar sus propios mensajes.
Para las funciones de gestión del servidor disponibles desde el flujo de tu bot, consulta "Discord API Functions."
Para aprender a construir el flujo de mensajes en sí, consulta "How to Create a Chatbot for Business."
Para permitir que la IA se comunique con los clientes en Discord, habilita un AI Assistant; consulta la sección "AI Assistant."