Tutorial bot Telegram Python: Crea tu propio bot paso a paso con python-telegram-bot
Si quieres aprender a programar un bot en Telegram con Python, este tutorial es perfecto para ti. Aquí te guiaremos de manera clara y detallada en el desarrollo de un bot Telegram paso a paso, usando la biblioteca python-telegram-bot
. Este tutorial está dirigido a desarrolladores principiantes e intermedios que desean iniciarse en la automatización y creación de bots.
Índice
- ¿Qué es un bot en Telegram y para qué sirve?
- Paso 1: Crear y configurar tu bot en Telegram
- Paso 2: Preparar el entorno de desarrollo en Python
- Paso 3: Implementar comandos básicos y manejo de mensajes
- Paso 4: Gestión de actualizaciones y eventos
- Paso 5: Desplegar el bot en un servidor local o en la nube
- Conclusión y buenas prácticas para el desarrollo de bots Telegram
¿Qué es un bot en Telegram y para qué sirve?
Un bot en Telegram es una aplicación automatizada que interactúa con usuarios a través de mensajes y comandos, permitiendo brindar servicios, responder preguntas, enviar notificaciones, gestionar grupos y mucho más.
Los bots se pueden programar para funciones simples o complejas y pueden integrarse en canales, grupos o conversaciones privadas.
Paso 1: Crear y configurar tu bot en Telegram
1.1 Interactúa con el BotFather
El primer paso para crear un bot Telegram python-telegram-bot es registrar tu bot mediante el BotFather, que es el bot oficial de Telegram que permite administrar otros bots.
- Abre Telegram y busca @BotFather.
- Inicia una conversación y envía el comando
/newbot
. - Sigue las indicaciones para asignar un nombre y un nombre de usuario único para tu bot (el username debe terminar en “bot”, por ejemplo, “miprimerobot”).
1.2 Obtén tu token de acceso
Una vez creado, BotFather te proporcionará un token de API que será necesario para que tu aplicación en Python se comunique con el bot.
Guarda este token, es la “llave” para controlar tu bot.
Paso 2: Preparar el entorno de desarrollo en Python
2.1 Instalar Python
Si aún no tienes Python instalado, descarga e instala la versión 3.7 o superior desde python.org.
Puedes verificar que Python está instalado correctamente abriendo una consola y ejecutando:
1 2 |
python --version |
2.2 Crear un entorno virtual (opcional pero recomendado)
Para mantener organizadas las dependencias, crea un entorno virtual:
1 2 |
python -m venv telegram-bot-env |
Actívalo:
- En Windows:
1 2 |
telegram-bot-env\Scripts\activate |
- En macOS/Linux:
1 2 |
source telegram-bot-env/bin/activate |
2.3 Instalar la biblioteca python-telegram-bot
Esta es la librería oficial para interactuar con la API de Telegram.
Instálala con pip:
1 2 |
pip install python-telegram-bot --upgrade |
Paso 3: Implementar comandos básicos y manejo de mensajes
Vamos a crear un bot básico que responda al comando /start
y maneje mensajes simples.
3.1 Esqueleto básico del bot
Crea un archivo bot.py
y agrega el siguiente código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
from telegram import Update from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes, MessageHandler, filters TOKEN = 'TU_TOKEN_AQUI' async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text('¡Hola! Soy tu bot de Telegram programado con python-telegram-bot.') async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: user_message = update.message.text await update.message.reply_text(f'Dijiste: {user_message}') if __name__ == '__main__': app = ApplicationBuilder().token(TOKEN).build() app.add_handler(CommandHandler('start', start)) app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo)) print('Bot en ejecución...') app.run_polling() |
3.2 Explicación paso a paso
- Importamos las clases necesarias:
Update, ApplicationBuilder, CommandHandler, ContextTypes, MessageHandler
, yfilters
. - Definimos el token que obtuviste en el paso 1.
- Función
start
: Responde al comando/start
con un mensaje de bienvenida. - Función
echo
: Responde repitiendo el texto enviado por el usuario, útil para pruebas iniciales. - Configuramos el
ApplicationBuilder
que maneja la conexión con Telegram. - Registramos los manejadores: uno para el comando
/start
y otro para manejar mensajes de texto que no sean comandos. - Ejecutamos el bot con
app.run_polling()
, que inicia la escucha continua de actualizaciones.
3.3 Ejecutar el bot
En la terminal, ejecuta:
1 2 |
python bot.py |
Abre Telegram, busca tu bot por su username y envíale el comando /start
. Deberías recibir la respuesta programada. También intenta enviar cualquier texto para ver cómo repite tu mensaje.
Paso 4: Gestión de actualizaciones y eventos
Más allá de responder mensajes simples, puedes gestionar eventos y actualizar el bot para que responda a distintos comandos y situaciones.
4.1 Añadir más comandos
Agrega un comando /help
que explique las funcionalidades del bot:
1 2 3 4 5 6 7 8 9 10 11 |
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: help_text = ( '/start - Inicio y bienvenida\n' '/help - Muestra esta ayuda\n' 'Escribe cualquier texto y te lo repetiré.' ) await update.message.reply_text(help_text) # Luego añade el handler app.add_handler(CommandHandler('help', help_command)) |
4.2 Manejar diferentes tipos de mensajes
Por ejemplo, detectar fotos enviadas y responder:
1 2 3 4 5 |
async def photo_handler(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text('¡Gracias por la foto!') app.add_handler(MessageHandler(filters.PHOTO, photo_handler)) |
4.3 Uso de filtros avanzados
Puedes filtrar sobre comandos, usuarios, grupos, o incluso palabras clave para personalizar la respuesta.
Paso 5: Desplegar el bot en un servidor local o en la nube
Para que tu bot esté activo incluso cuando cierres tu máquina, necesitarás desplegarlo en permanente.
5.1 Ejecución local permanente
- Puedes usar herramientas como screen o tmux en Linux/macOS para ejecutar el bot en segundo plano.
1 2 3 |
screen -S telegram-bot python bot.py |
Para salir sin detener el proceso, presiona Ctrl + A
luego D
.
5.2 Despliegue en la nube
Algunas opciones populares para desplegar bots son:
- Heroku (fácil y gratuito para proyectos pequeños)
- AWS EC2 (más flexible y complejo)
- Google Cloud Run
- PythonAnywhere
Desplegar en Heroku (resumen rápido)
- Crea una cuenta gratuita en heroku.com.
- Instala la CLI de Heroku.
- Prepara un archivo
requirements.txt
con las dependencias:
1 2 |
python-telegram-bot |
- Crea un archivo
Procfile
con:
1 2 |
worker: python bot.py |
- Inicializa un repositorio git en tu proyecto.
- Sube e implementa en Heroku usando comandos git y heroku CLI.
Esta opción permite que tu bot se ejecute 24/7 sin depender de tu PC.
5.3 Variables de entorno
Nunca expongas tu token directamente. Al desplegar en producción, utiliza variables de entorno para guardar el token.
Ejemplo para obtener token en Python:
1 2 3 |
import os TOKEN = os.getenv('TELEGRAM_BOT_TOKEN') |
Conclusión y buenas prácticas para el desarrollo de bots Telegram
En este tutorial has aprendido cómo crear un bot Telegram python-telegram-bot desde cero, incluyendo:
- Registro y configuración en Telegram.
- Preparación del entorno Python.
- Implementación de comandos básicos y manejo de mensajes.
- Gestión de eventos y filtros avanzados.
- Despliegue local y en la nube para ejecución continua.
Buenas prácticas:
- Usa entornos virtuales para aislar dependencias.
- No compartas tu token públicamente, guárdalo en variables de entorno.
- Maneja errores para evitar que el bot se caiga con interacciones inesperadas.
- Documenta tu código y usa nombres claros para facilitar mantenimiento.
- Escucha feedback de usuarios para mejorar funcionalidades.
Finalmente, te invitamos a que experimentes con nuevas características: conexión con APIs externas, bases de datos, teclados inline, y más. El mundo de los bots Telegram programados en Python es muy amplio y potente.
¡Empieza hoy mismo tu proyecto y automatiza tus tareas con tu propio bot!
¿Te gustó el tutorial? Comparte y comenta tu experiencia programando bots Telegram con Python. Para más tutoriales y guías, sigue nuestro blog.