En este simple tutorial veremos cómo crear un bot para Telegram usando python, elegimos este lenguaje por ser multiplataforma y por contar además con buenas librerías para dicha tarea.

El primer paso para crear nuestro bot, es tener una cuenta en Telegram, ya que necesitamos generar un Token para interactuar con la API. Para ello ingresamos a Telegram, y en el buscador colocamos “BotFather”, haciendo click en el primer resultado que nos arroja.

Ahora debemos darle a “iniciar”, y se desplegarán las diferentes opciones que tenemos disponibles para poder personalizar nuestro bot, como colocar descripción, foto de perfil, etc. Para iniciar solo debemos colocar el comando “/newbot”, luego de esto nos pedirá colocarle un nombre a nuestro bot y un usuario (este debe ser único), y ya con eso nos otorgarán nuestro Token para poder comenzar a programar nuestro bot en Python.

Instalar las librerías y crear entorno virtual para nuestro bot

En nuestro caso estamos usando Windows 10 para realizar la programación, por lo que los comandos pueden variar un poco con respecto a otros SO.

Lo primero será crear una carpeta o directorio donde tendremos nuestro bot, luego abrimos nuestra consola o CMD (ejecutar como administrador), y nos dirigimos al directorio previamente creado, ejecutando el siguiente comando:

py -m venv venv

Luego activaremos nuestro entorno virtual usando:

.\venv\Scripts\activate

Ahora solo queda instalar las librerías necesarias. Para nuestro ejemplo usaremos pyTelegramBotAPI, además de agregar unas 3 librerías básicas más de Phyton, para ello solo debemos ejecutar los siguientes comandos:

pip install bs4
pip install requests
pip install schedule
pip install pyTelegramBotAPI

Código fuente de nuestro bot

Como ejemplo práctico crearemos un bot que nos muestre el precio de un token o criptomoneda, usando la API de coingecko, usaremos este servicio ya que no necesita registrarse ni crear una llave para interactuar con su API.

El primer paso de nuestro código será importar las librerías antes instaladas, y definir la variable que contendrá el token de nuestro bot (el que creamos en telegram). Nos debería quedar así:

import telebot
from bs4 import BeautifulSoup
import requests
import schedule
import json
bot = telebot.TeleBot("2015877079:AAEkR7dOdFaYSReDFbFXKJANSKJDNKA") #Token que nos otorgaron en telegram

Ahora crearemos la función que nos traerá el precio de la criptomoneda o token que queramos desde coingecko:

def PVU_scraping():
    url = requests.get('https://api.coingecko.com/api/v3/simple/price?ids=plant-vs-undead-token&vs_currencies=usd&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true&include_last_updated_at=true')
    data = json.loads(url.text)
    format_result = data["plant-vs-undead-token"]["usd"] #nos da el precio del token reflejado en dolares.

    return format_result

En este caso estamos obteniendo el precio del token PVU, del juego Plant vs Undead, al hacer el requests nos mostrará un resultado en Json, por lo que debemos interactuar con el dependiendo de lo que queramos. La API de coingecko nos permite saber varias cosas sobre un token, como su precio, capitalización de mercado, variación de precio las últimas 24 horas, etc. Puedes buscar las diferentes opciones de su API en su página oficial.

Ahora debemos definir el comando que nos mostrará el precio de nuestro token, para ello agregaremos las siguientes líneas:

@bot.message_handler(commands=['PVU', 'pvu'])
def send_welcome(message):
	bot.reply_to(message, "$" + str(PVU_scraping()))

bot.polling()

Esto simplemente hará que al escribir “/PVU” en nuestro chat de telegram, nos muestre el precio del token. Recuerda ejecutar el código de tu bot en tu consola para que funcione.

Para interactuar con el bot puedes agregarlo a un grupo y darle privilegios de administrador, y ya con esto quedara a la escucha de comandos y responderá las peticiones que le hayas programado.