Introducción
Este tutorial explica cómo ejecutar un bot de Discord en un servidor Linux. Un bot de Discord es una excelente manera de aprender los fundamentos del desarrollo web y backend mientras te diviertes con tus amigos. Con la reciente expansión de Discord al público, aprender a crear y ejecutar bots de Discord también puede convertirse en una actividad extra divertida. Crear un bot de Discord no es difícil, pero requiere una serie de pasos específicos que debes seguir para mantener tu bot de Discord seguro y operativo.
Dado que los bots de Discord ejecutan código y pueden realizar interacciones muy complejas con los servidores de Discord, necesitan estar alojados en servidores. Aunque existen servicios de pago que alojan tu bot de Discord en internet, tras los tutoriales que aprenderás aquí, es mucho más fácil alojar tu propio bot de Discord.
Este tutorial utiliza Python con la biblioteca discord.py. Los bots de Discord están escritos principalmente en Python (biblioteca discord.py) o JavaScript (biblioteca discord.js), ambos excelentes ecosistemas compatibles con todas las demás bibliotecas escritas en ese lenguaje. Por lo tanto, la mayoría de los pasos son los mismos para ambos (excepto los específicos del lenguaje). Sin embargo, es más fácil comenzar con la biblioteca Python, por lo que se eligió para este tutorial.
El ejemplo de bot de Discord en esta biblioteca será un simple bot de corrección ortográfica que le mostrará algunos de los comandos más importantes en la biblioteca discord.py.
Requisitos previos
- Un VPS o Servidor Privado Virtual
Si no tienes muchos usuarios o tu bot realiza una tarea sencilla, prácticamente no hay requisitos de hardware y todo lo que necesitas para poder hacer es ejecutar Python.
- Cualquier sistema operativo Linux de 64 bits (x86-64 o Arm64)
Este tutorial asume que está ejecutando Ubuntu, pero los mismos pasos funcionarán en otras distribuciones de Linux y Windows con modificaciones menores.
- Una cuenta de Discord con un servidor de Discord donde tienes privilegios de administrador.
Conocimientos básicos o intermedios de Python
Paso 1 – Configurar un entorno virtual
Antes de empezar, se recomienda usar un entorno virtual de Python llamado virtualenv. Este permite que cada proyecto tenga versiones específicas de bibliotecas para ese proyecto y así evitar incompatibilidades entre proyectos que puedan requerir versiones específicas. Esto es muy recomendable para bots de Discord que se ejecutan en Python, ya que garantiza que su bot siempre funcionará y podrá migrarlo fácilmente a otro servidor.
Abra la terminal en su Linux o conéctese a su servidor a través de SSH (shell seguro) y ejecute los siguientes comandos:
apt update && apt install python3.10-venv
mkdir discord-bot && cd discord-bot/
python3 -m venv discord-bot-env
source discord-bot-env/bin/activateEsto instalará el paquete de Python necesario para crear entornos virtuales, crear un directorio para el bot de Discord y activar el entorno virtual de Python. Tu terminal debería verse así: (entorno de bot de discordia) Antes de que se muestre tu nombre de usuario, instala la biblioteca discord.py.
python3 -m pip install --upgrade discord.pyمرحله 2 – ربات خود را با Discord ثبت کنید
Antes de ejecutar cualquier script, debes registrar tu bot de Discord en Discord y obtener un token que usará para autenticarse. Es un proceso sencillo, aunque largo. Solo sigue estos pasos:
1_Abre un navegador web.
2_Inicia sesión en el sitio de Discord.
3_Ingresa al portal de desarrolladores de discord.
4_Haga clic en nueva aplicación.
5_En la sección "crear una aplicación" nombra tu bot.
6_Haz clic en el bot y ve a la sección de bots.
7_Asegúrese de que “Bot público” esté seleccionado y que “Requiere concesión de código OAuth2” no esté seleccionado.
8_Haz clic en "Restablecer token" y anota tu token. Asegúrate de no perderlo. Si lo pierdes, tendrás que volver a hacer clic en el botón, obtener un nuevo token y actualizarlo en tu código.
9_Desplácese hacia abajo y lea la sección completa "«Intenciones de puerta de enlace privilegiada» Activar. Esto permitirá que el bot funcione. Dado que tu bot aún no tiene código, no se aplican las condiciones para más de 100 servidores.
10_Vaya a la sección OAuth2 y luego a la subsección "Generador de URL". La URL le permite a usted y a cualquier otra persona que desee usar su bot agregarlo fácilmente a su servidor con solo los permisos y la funcionalidad que desee.
11_En la sección “Ámbitos”, haga clic en “bot”.
12_En la sección "«Permisos de bots»Haz clic en todos los permisos que quieras otorgar al bot. Esto depende de lo que quieras que tu bot pueda hacer. Para el bot simple de este ejemplo, los siguientes permisos deberían ser suficientes.
13_En la sección «URL generada», haga clic en «Copiar».
14_Coloca esta URL en la barra de búsqueda y ve al enlace.
15_Lea la información sobre las funciones del bot y agréguelo al servidor. Solo puede agregar el bot a un servidor con privilegios administrativos.
16_Roy“Continuar”"Hacer clic"
17_Elige los permisos que quieres que tenga tu bot en el servidor al que lo vas a añadir. Intenta darle al bot la menor cantidad de permisos que aún sean completamente funcionales. Otorgarle permisos adicionales puede suponer un riesgo de seguridad si alguien obtiene tu token.
Paso 3: Escribe el código de tu bot
Ahora que el bot está registrado en Discord, necesitas escribir su código. Por suerte, crear un bot sencillo en Discord es fácil, y los archivos discord.py son ideales para ello.
En la misma carpeta donde ejecutaste los comandos en el "Paso 1", un archivo llamado script del bot de discordia.py Crea con tu editor de texto favorito. En este ejemplo, usaré nano.
nano discord_bot_script.pyCopie y pegue el siguiente código y reemplace el token en la última línea con su propio token:
import discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
words = [["youre", "you're"], ["im", "i'm"], ["Im", "I'm"], ["hes", "he's"], ["shes", "she's"]]
@client.event
async def on_ready():
print("Bot successfully logged in as " + client.user)
@client.event
async def on_message(message):
if message.author == client.user:
return
for word in words:
if word[0] in message.content:
await message.channel.send(str(message.author) + ", you misspelled " + word[1] + " as " + word[0], reference=message)
client.run('<YOUR-TOKEN-HERE>')من خط به خط نمیروم، اما این ربات ساده بیشتر آنچه را که برای شروع ایجاد رباتهای Discord خود در پایتون باید بدانید را نشان میدهد. با اعلام مقاصد شروع می شود، که اساساً فیلترهایی هستند که ربات شما برای قضاوت در مورد رویدادهایی که ثبت می کند و به آنها پاسخ می دهد استفاده می کند. برای مثال، اگر یک ربات غلطگیر املا دارید، فقط به رویدادهای پیام پاسخ میدهید، اما رویدادهایی مانند پیوستن افراد به سرور یا انجام بازیهای خاص را نادیده میگیرید. میتوانید در صفحه مستندات discord.py درباره مقاصد بیشتر بخوانید.
Listo, que es cuando se carga el script del bot y el bot se conecta a sus servidores.EN_MENSAJECuando alguien escribe un mensaje nuevo en cualquier servidor al que esté conectado el bot. Este evento también tiene un argumento que pasa el contenido y los metadatos del mensaje a la función.
Para la función listoEl código simplemente hace que el bot escriba un mensaje en la terminal. Puedes usar la función de impresión para registrar eventos durante el desarrollo.
Para la función en_mensajePrimero, el código comprueba si el autor del mensaje es el propio bot y, de ser así, retorna desde la función. Si no realiza esta comprobación, el bot podría quedar atrapado accidentalmente en un bucle que respondería a sus propios mensajes indefinidamente. Luego, el código comprueba si alguna de las palabras de la lista está presente en el mensaje recibido. De ser así, responde al mensaje enviado mediante la función de envío. Esta es una de las funciones más importantes y potentes de discord.py, y aprender a aprovechar todo su potencial te permitirá crear bots interesantes y complejos.
Ahora que has escrito tu bot, guarda el código y ejecútalo con la siguiente función:
python3 discord_bot_script.py

















