Creando Bots en Telegram

Creando Bots en Telegram

Peka

Viendo que hay muchos tutoriales de la api de telegram, decidí hacer uno yo, pero utilizando una plataforma que descubrí hace poco: Glitch

De qué trata Glitch?

Según la descripción de la pagina web:

Glitch is the friendly community where you'll build the app of your dreams

Qué vamos a usar y qué vamos a necesitar?

Usaremos Python como lenguaje de programación y Glitch como plataforma para ejecutar nuestro bot.

Si no tienes nociones de programación, te recomendaria empezar buscando tutoriales sobre Python, ya que si bien este tutorial será facil de seguir, tenemos que saber qué es lo que estamos haciendo.

Tambien vamos a necesitar algo muy importante, un token, para poder acceder a la api de Telegram.

Cómo consigo ese Token?

Nos dirigimos a @BotFather para obtener nuestro token de acceso.

Entre los comandos que tiene, necesitaremos el de /newbot, le enviamos ese comando y nos pedirá que le escribamos el nombre de nuestro bot, en mi caso le pondré tutorial bot

Esto solo será el nombre que mostrará nuestro bot, aún nos falta algo bastante importante, el nombre de usuario de nuestro bot, tiene que ser único, ya que es lo que usaremos para compartir nuestro bot con nuestros contactos, así que piensalo bien.

En este caso le he puesto de usuario tutorial_telegram_bot, cómo este nombre de usuario es único, me lo ha tomado al primer intento, puede darse el caso de que el nombre que desean ya esté en uso, así que tendrás que inventar algo más original :P

Gracias a este nombre de usuario puedes compartir tu bot con los demas usuarios, en mi caso, usando @tutorial_telegram_bot en el buscador de Telegram.

Una vez que tengamos nuestro nombre de usuario listo, BotFather nos dará un token de acceso:

Como verás, mi token es esa cadena de caracteres larga y sin sentido, asegurate de no compartirla con nadie.

Listo, tengo mi token, y ahora qué?

PUES NOS VAMOS A GLITCH!

Eh?

Eso, nos vamos a la pagina que he mencionado al principio, te la dejo aquí:

https://glitch.com/

Te registras, ya sea usando Facebook o Github, y ya estás listo para empezar tu bot. (puedes seguir el tutorial sin registrarte, pero tu proyecto se borrará al cabo de un rato)

De hecho, no empezarás nada, la premisa de Glitch es que puedes tomar apps hechas y ver como funcionan, y lo mejor de todo, copiarlas y hacer tu propia version, a esto es lo que ellos llaman Remix.

Entonces?

Ya tienes tu token, verdad? pues ahora nos vamos a este proyecto que he hecho de antemano para que lo puedas ver y editar a gusto:

Remix On Glitch

Te encontrarás con lo siguiente:

Ahora que hago? Por qué dice Error?

Estás en tu propio proyecto, estás viendo el archivo README.md, y el error que ves lo vamos a solucionar inmediatamente!

Vamos por pasos:

1- Hacemos clic en el archivo .env y el editor lo abrirá.

2-ponemos nuestro token justo despues de TELEGRAM_TOKEN=

Bien, ahora parece que se ha arreglado, no? vamos a probarlo!

Tenemos que hablarle a nuestro bot, claro, buscamos su username, o usamos el link que nos dió BotFather y lo iniciamos.

Heh, nos ha respondido!

Pero de qué sirve esto si solo responde a /start ?

Ahora es cuando empezamos a agregar funciones al bot :)

Volvemos a nuestra pagina en Glitch y hacemos clic en bot.py

Qué es todo eso?

Es el codigo fuente de nuestro bot, tan corto pero tan simple como se ve, no hace la gran cosa, pero ya hicimos que nos responda.

Veamos que hace cada parte:

bot.py

import telebot
from os import environ
bot = telebot.TeleBot(environ['TELEGRAM_TOKEN'])

Aquí usamos import telebot y from os import environ para tener acceso a la libreria telebot y a la función environ de la libreria os, luego declaramos la variable bot que es una instancia en la cual definimos sus funciones.
La sintaxis para la creacion del bot seria:

bot = telebot.TeleBot(TOKEN)

Dicho token lo obtenemos del archivo .env del proyecto.

bot_text = '''
Howdy, how are you doing?
Source code on https://glitch.com/~{}
'''.format(environ['PROJECT_NAME'])

Esto es simplemente otra declaración de variable, creamos el texto que nuestro bot va a enviar a los usuarios, y para hacerlo dinamico, el mismo bot sabe donde está alojado gracias a que en Glitch, cada proyecto tiene un nombre único.


Creación de un comando basico:

@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
bot.reply_to(message, bot_text)

Para agregar funciones a la instancia bot, se usa un decorador.

En general, la sintaxis es:

@bot.message_handler(commands=['COMANDO'])
def FUNCION(MENSAJE):
# hacer algo con el mensaje aqui.

En el ejemplo, el bot llamará a la función send_welcome(message) cada vez que reciba el mensaje /start o /help

con bot.reply_to(message, bot_text) el bot responde inmediatamente al mensaje con el mensaje predefinido anteriormente.

Configuración del webhook:

bot.set_webhook("https://{}.glitch.me/{}".format(environ['PROJECT_NAME'], environ['TELEGRAM_TOKEN']))

Esta es sin duda la parte más importante, es donde se configura la URL en donde queremos que telegram nos envie los mensajes, sin ella, nuestro bot no funcionaria porque no va a recibir ningun mensaje.

Repositorio de PyTelegramBotAPI

Documentacion de la Api de Telegram

Proximamente: Crear un bot para que los demas te contacten a través de el.

Report Page