Crear un BOT para Discord con Python
¡ Hola a todos ! Hoy vamos a crear un bot para Discord con Python, lo que va a hacer es darnos gifs random (de giphy) de una lista cada vez que se lo llama. Vamos a por ello.
Discord, hoy en día, es por excelencia una de las aplicaciones de comunicación mas usadas, además, permite muchas funcionalidades, entre ellas, crear un canal para hablar y/o chatear con tus amigos. Dentro de otra de las funcionalidades que posee, es la posibilidad de tener o crear un bot.
Para comenzar...
Primero necesitamos crear una app en Discord y allí alojaremos nuestro BOT. Para hacerlo primero vamos al portal de desarrolladores de DIscord. Si no tenemos cuenta, nos registramos y luego logueamos.
Una vez allí, le damos al botón de New Application. (Se encuentra en la parte superior derecha)
Le damos un nombre y damos click en Create
Y ahora vamos a crear el BOT. En la parte izquierda seleccionamos la opción Bot
Creamos el BOT, dando click en el botón Add Bot
Nos sale otra ventana, le damos que si
Una vez terminado ya nos abre el menu del BOT donde , por defecto, nos va a crear el BOT con el nombre de la APP, podemos cambiarlo y darle una imagen si queremos.
Con estos pasos ya tenemos el BOT creado, ahora solo nos faltan dos cosas: Añadirlo al servidor que queremos y darle funcionalidad (actualmente no hace nada).
¿Cómo añadir nuestro BOT al servidor de Discord?
Vamos a usar la opción de OAuth2 que nos ofrece Discord.
En el menu izquierdo vamos a OAuth2
Luego, debemos decirle que scope y que permisos va a tener nuestra app.
Allí vamos a seleccionar como Scope "bot" y como permisos "Administrator" (dependiendo del bot que ustedes quieran pueden seleccionar otros permisos)
Esto nos va a generar una url (la que esta marcada con la flecha roja en la imagen), esa es la que debemos copiar.
Pegamos esa url en nuestro navegador y nos va a dar la posibilidad de agregar nuestro BOT al servidor que queremos. En mi caso me cree uno de prueba.
Una vez seleccionado le damos a Continue y luego Authorize
Si todo salió bien, nos va a dar la siguiente pantalla:
En nuestro servidor, podemos verificar que nuestro bot ya esté:
Nos queda lo más interesante... programarlo para darle funcionalidad. Nosotros vamos a hacer que cada vez que digamos un comando, este responda con un gif aleatorio de una lista.
Manos a la obra
Vamos a usar una librería que nos soluciona muchas cosas, en cuanto a conexiones y request a la API, llamada discord.py.
Documentación oficial de la librería: AQUI
Descarguemos con pip
pip install -U discord.py
Una vez descargado nuestro salvador, vamos a crear un archivo llamado bot.py
Dentro, vamos a colocar el siguiente código:
# bot.py
import random #Para poder seleccionar un random de nuestra lista
from discord.ext import commands # Importamos commands de la libreria
TOKEN = "NUESTRO TOKEN" #El token secreto de nuestro BOT
bot = commands.Bot(command_prefix='!') # Le Decimos con que prefijo el bot #va a empezar escuchar para saber cual es el comando
@bot.command(name='randomMeme') #Nombre del comando
async def randomMeme(ctx): #Funcion del comando
listGifs = [
'https://media.giphy.com/media/EXHHMS9caoxAA/giphy.gif',
'https://media.giphy.com/media/NQL7Wuo2JSQSY/giphy.gif',
'https://media.giphy.com/media/myuLckXB7OjfGw1gSb/giphy.gif',
'https://media.giphy.com/media/quO0X65yj6gw0/giphy.gif',
'https://media.giphy.com/media/LYd7VuYqXokv20CaEG/giphy.gif',
'https://media.giphy.com/media/JNgLZn7fWAjjW/giphy.gif',
'https://media.giphy.com/media/lFmmcqA4VBhMQ/giphy.gif',
'https://media.giphy.com/media/V4NnsmEY7hsK4/giphy.gif'
] #La lista con los gifs
response = random.choice(listGifs) #Seleccionamos un random de la # lista
await ctx.send(response) #Enviamos la respuesta
bot.run(TOKEN) #Corremos el BOT
Básicamente, para tener en cuenta, podemos crear un prefijo y tener muchos comando asociados.
¿Cómo obtenemos el token de nuestro bot?
En la página de desarrolladores de Discord (donde lo creamos), en nuestra APP vamos a la sección Bot y luego damos clic en Copy.
Para usar el bot, debemos correr el script con python bot.py (dentro de la carpeta donde creamos el archivo) y luego en nuestro servidor escibimos !randomMeme y el bot nos contestará con un meme de la lista.
Y listo ! Después en la página oficial tienen mas ejemplos, además, recomiendo este tutorial completo de como hacerlo.
Esto fue como crear un BOT para Discord con Python