Tutorial bot Telegram Python: Cómo crear un bot para Telegram usando Python y la API oficial
Crear bots para Telegram se ha convertido en una habilidad muy demandada para desarrolladores que quieren automatizar tareas, atender usuarios o construir aplicaciones interactivas. En este tutorial bot Telegram Python, aprenderás paso a paso cómo crear un bot desde cero, configurar el entorno, registrar tu bot, programarlo con python-telegram-bot y desplegarlo. Está diseñado para desarrolladores principiantes e intermedios que quieren dominar la creación de bots Telegram paso a paso.
Índice
- Introducción al mundo de los bots en Telegram
- Requisitos previos y configuración del entorno
- Registro y creación de tu bot en Telegram
- Instalación y uso de la librería python-telegram-bot
- Manejo básico de comandos y mensajes
- Ejemplo completo de un bot simple
- Despliegue básico del bot
- Buenas prácticas y consejos finales
- Conclusión y siguientes pasos
Introducción al mundo de los bots en Telegram
Telegram brinda a los desarrolladores una API oficial que permite crear bots capaces de interactuar con usuarios, enviar y recibir mensajes, responder a comandos, y mucho más. Esta apertura convierte a Telegram en una plataforma ideal para bots personalizados, que pueden mejorar la experiencia del usuario o automatizar servicios.
Entre las ventajas de usar Telegram para tus bots destacan:
- Seguridad y privacidad
- Fácil acceso a la API REST y Webhooks
- Amplio soporte de formatos de mensaje
- Integración sencilla con Python gracias a librerías especializadas
Este tutorial se basa en la librería python-telegram-bot, reconocida por su estabilidad y comunidad activa.
Requisitos previos y configuración del entorno
Antes de empezar, asegúrate de tener lo siguiente:
- Un equipo con Python instalado (preferentemente Python 3.7 o superior).
- Una cuenta en Telegram.
- Un editor de texto o IDE (como VSCode, PyCharm o similar).
Paso 1: Verifica tu versión de Python
Abre tu terminal o consola y escribe:
1 2 |
python3 --version |
Si no tienes Python 3 instalado, descárgalo desde python.org.
Paso 2: Crea y activa un entorno virtual (opcional pero recomendado)
Esto te ayudará a mantener las dependencias organizadas.
1 2 3 4 5 |
python3 -m venv telegram-bot-env source telegram-bot-env/bin/activate # Linux/Mac # o telegram-bot-env\Scripts\activate # Windows |
Paso 3: Instala python-telegram-bot
Esta es la librería oficial más popular para crear bots en Telegram con Python.
1 2 |
pip install python-telegram-bot --upgrade |
Registro y creación de tu bot en Telegram
Para interactuar con la API de Telegram, primero necesitas crear y obtener el token de tu bot.
Paso 1: Encuentra a BotFather
BotFather es el bot oficial que te facilita la creación y gestión de otros bots.
- Abre Telegram.
- Busca
@BotFather
en la barra de búsqueda.
Paso 2: Crea tu bot
- Envía el comando
/newbot
. - BotFather te pedirá un nombre para tu bot (ej: MiPrimerBot).
- Luego un nombre de usuario único y obligatorio que termine con “bot” (ej: MiPrimerBot2024_bot).
Paso 3: Obtén el token de acceso
BotFather te enviará un token como este:
1 2 |
123456789:ABCdefGhIJKlmNoPQRstUvWxYZ |
Guárdalo, ya que lo necesitarás para conectar tu código Python con la API.
Instalación y uso de la librería python-telegram-bot
Esta librería facilita muchísimo la interacción con la API oficial.
Crear un archivo Python
Crea un archivo llamado bot.py
y abrelo en tu editor.
Código básico para iniciar el bot
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
from telegram import Update from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes TOKEN = 'TU_TOKEN_AQUI' async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text('¡Hola! Soy tu bot configurado con python-telegram-bot.') async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text('Envía /start para comenzar o /help para ayuda.') if __name__ == '__main__': app = ApplicationBuilder().token(TOKEN).build() app.add_handler(CommandHandler('start', start)) app.add_handler(CommandHandler('help', help_command)) print('Bot iniciado...') app.run_polling() |
Explicación paso a paso:
- Importamos módulos para manejar actualizaciones y comandos.
- Definimos funciones async para responder a mensajes /start y /help.
- Creamos una instancia Application con el token.
- Añadimos handlers para los comandos.
- Ejecutamos
run_polling()
para escuchar mensajes.
Manejo básico de comandos y mensajes
Añadiendo un comando personalizado:
Supongamos que quieres un comando /echo
que repita lo que el usuario envíe.
Agrega esta función en bot.py
:
1 2 3 4 5 6 7 |
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: text_received = ' '.join(context.args) if text_received: await update.message.reply_text(text_received) else: await update.message.reply_text('Por favor, envía algo después del comando /echo') |
Luego registra el handler:
1 2 |
app.add_handler(CommandHandler('echo', echo)) |
Manejo de mensajes libres
Para responder a mensajes de texto que no sean comandos, usa MessageHandler
:
1 2 3 4 5 6 7 8 |
from telegram.ext import MessageHandler, filters async def respuesta_general(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text('Me has enviado: ' + update.message.text) # Agrega el handler para mensajes normales app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, respuesta_general)) |
Ejemplo completo de un bot simple
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
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 configurado con python-telegram-bot.') async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text('Envía /start para comenzar, /help para ayuda o /echo seguido de un texto para que lo repita.') async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: text_received = ' '.join(context.args) if text_received: await update.message.reply_text(text_received) else: await update.message.reply_text('Por favor, envía algo después del comando /echo') async def respuesta_general(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text('Me has enviado: ' + update.message.text) if __name__ == '__main__': app = ApplicationBuilder().token(TOKEN).build() app.add_handler(CommandHandler('start', start)) app.add_handler(CommandHandler('help', help_command)) app.add_handler(CommandHandler('echo', echo)) app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, respuesta_general)) print('Bot iniciado...') app.run_polling() |
Ejecuta el bot con:
1 2 |
python bot.py |
En Telegram, busca tu bot por el username, inicia con /start
y prueba comandos y mensajes.
Despliegue básico del bot
Para mantener tu bot activo 24/7 necesitas desplegarlo en un servidor.
Opción 1: Usar un VPS o servidor propio
- Compra un VPS (DigitalOcean, AWS, etc.)
- Transfiere tu código al servidor vía SSH
- Instala Python, pip y dependencias
- Ejecuta el bot con
nohup python bot.py &
o usascreen
para mantenerlo activo
Opción 2: Plataformas gratuitas
- Heroku, Railway o Render permiten subir tu bot y mantenerlo activo con configuraciones simples
- Debes configurar el token como variable de entorno
Considera usar Webhooks para producción
Polling es simple para pruebas, pero Webhooks mejora la eficiencia para bots en producción
Buenas prácticas y consejos finales
- Mantén seguro el token: No subas tu token a repositorios públicos.
- Usa entornos virtuales: Para controlar dependencias.
- Gestiona errores: Implementa try/except para evitar caídas inesperadas.
- Documenta tu código: Facilita la colaboración y mantenimiento.
- Actualiza librerías: Mantente al día con las nuevas versiones de python-telegram-bot.
- Lee la documentación oficial: Siempre hay novedades y mejores prácticas en https://python-telegram-bot.org/
Conclusión y siguientes pasos
¡Felicidades! Ahora conoces cómo crear un bot para Telegram usando Python y la API oficial, desde la configuración del entorno hasta el despliegue básico. Este tutorial bot Telegram Python te brindó las bases para desarrollar bots más complejos, que pueden incluir funciones como teclados inline, integración con bases de datos, manejo avanzado de estados y mucho más.
Te invitamos a:
- Experimentar con los comandos y mensajes
- Explorar la documentación oficial de python-telegram-bot
- Implementar Webhooks para una mejor escalabilidad
- Publicar tu bot y compartirlo con la comunidad
Recuerda que crear bots es un aprendizaje continuo y una excelente forma de mejorar tus habilidades en Python y APIs.
¡Empieza ahora y da vida a tu bot personalizado!