Aprende a crear bots de Telegram con Python y Telepot en una hora. ¡Esto es, mucho más fácil de lo que crees!
En este curso aprenderás a crear tu propio bot de Telegram usando Python y la librería Telepot, aunque nunca hayas hecho antes nada con bots.
Creación de Bot en Telegram con Python y Telepot
Partiremos desde cero absoluto: qué es Telegram, qué es un bot, cómo crear uno con BotFather, cómo hablar con él desde Python, cómo leer y contestar mensajes, cómo usar Requests para conectar con APIs en internet y cómo enviar mensajes, imágenes y datos generados de forma automática.
Unidad 1: Cómo entender qué es un bot de Telegram y preparar tu entorno
1.1. Qué es Telegram y qué es un bot
- Telegram es una aplicación de mensajería (como WhatsApp) que permite enviar mensajes, fotos, vídeos y archivos.
- Un bot de Telegram es una “cuenta especial” manejada por un programa, no por una persona.
- Tu bot puede:
- Leer mensajes que le envían los usuarios.
- Responder automáticamente con texto, imágenes o archivos.
- Conectarse a otras webs o APIs para traer información (clima, noticias, datos falsos, etc.).
- El objetivo de este curso es que tú seas quien controla ese programa que está “detrás” del bot.
1.2. Qué necesitas antes de empezar
Aunque se va a explicar todo paso a paso, es importante que tengas:
- Python instalado (versión 3.x).
- Un editor de texto o IDE:
- Opción sencilla: Visual Studio Code.
- Opción alternativa: PyCharm, Thonny o incluso IDLE (el que viene con Python).
- Una cuenta de Telegram en tu móvil o PC.
- Conocimientos básicos de Python:
- Saber qué es una variable.
- Saber usar
if,else. - Saber usar bucles
forowhile. - Saber crear funciones con
def.
Si algo de esto suena raro, no pasa nada: en cada uso concreto se indicará qué hace cada línea.
1.3. Instalando Python paso a paso (si no lo tienes)
- Entra en la web oficial de Python (python.org) y descarga la versión 3 para tu sistema operativo (Windows, macOS o Linux).
- Durante la instalación en Windows, marca la casilla “Add Python to PATH”.
- Cuando termine, abre una terminal o consola:
- En Windows: “Símbolo del sistema” o “PowerShell”.
- En macOS: app “Terminal”.
- En Linux: tu terminal habitual.
- Escribe:
python --versionopython3 --version.- Si aparece un número tipo
Python 3.10.x, está instalado correctamente.
Unidad 2: Cómo crear tu primer bot con BotFather
2.1. Presentación de BotFather
- BotFather es el bot oficial de Telegram que sirve para crear otros bots.
- Con él podrás:
- Crear un nuevo bot.
- Ponerle nombre y usuario.
- Obtener el token, una cadena de texto que funcionará como “contraseña” que usará tu programa para controlar el bot.
2.2. Creando tu bot paso a paso
- Abre Telegram en tu móvil o PC.
- En la barra de búsqueda escribe:
BotFather. - Asegúrate de seleccionar el bot verificado (normalmente con un check azul).
- Pulsa “Start” o escribe
/start. - Escribe el comando:
/newbot - BotFather te pedirá:
- Nombre del bot: es el nombre visible (por ejemplo, “Bot Curso Telegram”).
- Username del bot: debe acabar en “bot” (por ejemplo,
CursoTelegramBotoMiBotDePruebas_bot).
- Cuando hayas enviado ambos, BotFather responderá con un mensaje que incluye:
- Un texto que indica que el bot ha sido creado.
- Un token parecido a:
123456789:ABCdefGhIJKLmNoPqRSTuvWxYz12345678.
Muy importante:
– Guarda ese token en un lugar seguro (un archivo de texto o un gestor de contraseñas).
– Nunca lo publiques en internet.
2.3. Probando que tu bot existe
- Haz clic en el enlace al bot que te da BotFather o búscalo por su username.
- Abre el chat del bot y pulsa “Start”.
- De momento no responderá, porque aún no hay ningún programa conectado, pero ya existe y está listo para que Python lo controle.
Unidad 3: Cómo preparar Python y Telepot para hablar con Telegram
3.1. Qué es Telepot
- Telepot es una librería de Python que simplifica el uso de la API de Telegram.
- Gracias a Telepot no necesitas construir tú mismo todas las peticiones HTTP a Telegram; la librería ya lo hace por ti.
3.2. Instalando Telepot paso a paso
- Abre una terminal o consola.
- Escribe:
pip install telepot
o, si tu sistema usapip3:pip3 install telepot
- Espera a que termine la instalación. Si sale algún error, revisa que Python y pip estén bien instalados.
3.3. Estructurando tu primer proyecto
- Crea una carpeta para tu bot, por ejemplo:
bot_telegram_curso. - Dentro de esa carpeta, crea un archivo llamado
bot.py. - Crea también un archivo
config.py(opcional, pero recomendable) para guardar el token:- Dentro de
config.py, escribe algo como:TOKEN = "AQUÍ_VA_TU_TOKEN_DE_BOTFATHER"
- Dentro de
- De esta forma, si compartes tu código, no necesitas subir tu token a internet: solo compartes
bot.pyy mantienesconfig.pyprivado.
Unidad 4: Cómo leer y responder mensajes básicos con Telepot
4.1. Entender cómo se comunica el bot
- Tu bot y Telegram se comunican por internet mediante una API.
- Tu programa en Python:
- Pregunta a Telegram: “¿Hay mensajes nuevos para mi bot?”.
- Lee los mensajes.
- Decide qué respuesta enviar.
- Envía la respuesta.
4.2. Código mínimo para probar el bot
En esta unidad, la idea es que entiendas la estructura, no solo copiar y pegar. A nivel conceptual, tu código tendrá:
- Importar telepot y tu token:
import telepotfrom config import TOKEN
- Crear un objeto bot con ese token:
bot = telepot.Bot(TOKEN)
- Definir una función que se ejecuta cuando llega un mensaje:
- Esta función recibe los datos del mensaje.
- Extrae el texto que ha escrito el usuario.
- Manda una respuesta.
- Hacer que el bot “escuche” continuamente:
- Telepot ofrece mecanismos para escuchar actualizaciones (por ejemplo,
bot.message_loop).
- Telepot ofrece mecanismos para escuchar actualizaciones (por ejemplo,
4.3. Probando interacciones simples
- Envía un mensaje sencillo al bot, como “Hola”.
- Haz que el bot responda algo fijo: por ejemplo, “Hola, soy tu primer bot de Telegram.”
- Luego puedes mejorar la lógica:
- Si el usuario escribe “/start”, responde con un mensaje de bienvenida largo.
- Si escribe “ayuda”, muestra las opciones disponibles.
Unidad 5: Cómo usar Requests para conectarte a APIs en internet
5.1. Qué es una API
- Una API es una puerta de entrada para que un programa pida información a otro servicio en internet.
- Por ejemplo:
- Una API de clima te devuelve la temperatura.
- Una API de datos falsos te devuelve nombres, emails o direcciones inventadas.
5.2. Instalando y probando Requests
- Abre una terminal.
- Escribe:
pip install requests
- En un archivo de pruebas (por ejemplo,
prueba_requests.py):- Importa la librería:
import requests. - Haz una petición GET a una URL de ejemplo.
- Imprime el código de respuesta y el contenido.
- Importa la librería:
5.3. Entendiendo la respuesta: JSON y diccionarios
- Muchas APIs devuelven los datos en formato JSON, que en Python se maneja como diccionarios y listas.
- Aprenderás a:
- Convertir la respuesta de la API en un diccionario de Python.
- Acceder a sus claves.
- “Desglosar” un super diccionario (uno muy grande con muchos niveles) para encontrar los datos que te interesan (por ejemplo,
datos["nombre"]["primero"]).
Unidad 6: Cómo crear un bot que genere datos falsos desde internet
6.1. Elegir una API de datos falsos
- Buscaremos un servicio (por ejemplo, una API de datos aleatorios o “random user”) que entregue:
- Nombres
- Emails
- Direcciones
- Fotos de perfil, etc.
- El bot se conectará a esa API cada vez que el usuario lo pida.
6.2. Conectando tu bot con la API
- En tu función que maneja mensajes, detecta un comando, por ejemplo
/falso. - Cuando el usuario escriba ese comando:
- Tu bot llamará a la API usando
requests.get(...). - Convertirá la respuesta en un diccionario.
- Extraerá el nombre, email, dirección u otros campos.
- Construirá un mensaje de texto con esos datos falsos.
- Enviará ese texto de vuelta al usuario en Telegram.
- Tu bot llamará a la API usando
6.3. Desglosando un super diccionario paso a paso
- Empieza imprimiendo toda la respuesta (ojo: puede ser muy grande).
- Identifica las claves principales, por ejemplo:
results,info, etc.
- Dentro de
results, a lo mejor hay una lista (por ejemploresults[0]). - Dentro de ese elemento, habrá más diccionarios:
name,location,email,picture, etc.
- Ve accediendo paso a paso:
- Primero
datos["results"]. - Luego
datos["results"][0]. - Después
datos["results"][0]["name"]. - Y así hasta llegar al dato que quieres.
- Primero
Este proceso de “explorar” el diccionario es clave para usar cualquier API.
Unidad 7: Cómo enviar imágenes y usar funciones especiales del bot
7.1. Formas de enviar imágenes desde un bot de Telegram
Hay varias maneras:
- Enviar una imagen que ya tengas en tu ordenador (como archivo local).
- Enviar una imagen desde una URL (de internet).
- Enviar imágenes que la API de datos falsos te devuelva (por ejemplo, fotos de perfil).
7.2. Enviar una imagen paso a paso
- En tu función de manejo de mensajes, detecta un comando, por ejemplo
/foto. - Decide de dónde saldrá la imagen:
- De una carpeta local.
- De una URL incluida en los datos de la API.
- Usa la función específica de Telepot para enviar fotos:
- Algo tipo
bot.sendPhoto(chat_id, ...)con el recurso adecuado (archivo o URL).
- Algo tipo
- Verifica que:
- El
chat_ides el correcto (el mismo que usas para enviar textos). - La ruta o la URL de la imagen es válida.
- El
7.3. Combinar texto e imagen
- Tu bot puede primero enviar un texto explicando qué es la imagen.
- Inmediatamente después, enviar la imagen.
- O bien incluir un texto como “caption” junto con la imagen (según cómo lo implementes).
Unidad 8: Cómo organizar tu código y crear un “servidor” de bot estable
8.1. Qué significa “servidor de mensajes”
- Hasta ahora has ejecutado tu bot desde tu ordenador.
- Un servidor no es más que un ordenador (o máquina en la nube) que:
- Está encendido todo el tiempo.
- Ejecuta el script de tu bot.
- Está preparado para recibir mensajes de Telegram las 24 horas.
8.2. Mantener el bot escuchando
- En local:
- Ejecutas
python bot.py. - Dejas la consola abierta.
- Mientras tanto, el bot seguirá respondiendo.
- Ejecutas
- En un servidor remoto (por ejemplo, un VPS o un servicio en la nube):
- Subes tus archivos (
bot.py,config.py). - Instalás Python, Telepot y Requests.
- Ejecutas tu script con algún mecanismo para que siga corriendo aunque cierres la sesión (por ejemplo,
screen,tmuxo un servicio del sistema).
- Subes tus archivos (
8.3. Organización del proyecto
Para que tu código sea más limpio, puedes separar:
- Archivo
config.py: token y otros datos de configuración. - Archivo
bot.py: lógica principal. - Módulos auxiliares:
- Uno para la parte de conexión con APIs.
- Otro para funciones específicas (por ejemplo, formato de datos o generación de mensajes).
Unidad 9: Cómo pensar como emprendedor: automatizar tu mensajería con bots
9.1. Usos típicos para emprendedores
Con lo que has aprendido, ya estás en condiciones de:
- Automatizar respuestas frecuentes:
- Horarios.
- Precios.
- Información básica de productos o servicios.
- Crear menús interactivos (con comandos o botones) para guiar a los usuarios.
- Integrar tu bot con otras APIs:
- Enviar notificaciones cuando haya ventas.
- Consultar stock.
- Mostrar información personalizada.
9.2. Buenas prácticas básicas
- Siempre valida lo que envía el usuario:
- No asumas que siempre escribirá lo que esperas.
- Maneja errores:
- Rodea tus peticiones a APIs con bloques que detecten fallos (por ejemplo, conexión caída).
- No compartas el token del bot:
- Trátalo como una contraseña.
- Empieza simple:
- Primero un bot que responde “Hola”.
- Luego añade un comando.
- Después conecta con una API.
- Más tarde, añade envío de imágenes.
Unidad 10: Cómo seguir aprendiendo y ampliar tu bot
10.1. Mejoras posibles
Una vez tengas tu bot básico funcionando, puedes:
- Añadir teclados personalizados y botones.
- Manejar distintos tipos de mensajes:
- Audio.
- Documentos.
- Ubicaciones.
- Guardar datos de usuarios en una base de datos para ofrecer respuestas más personalizadas.
10.2. Recomendación de práctica
Para consolidar lo aprendido, puedes plantearte:
- Crear un bot que:
- Tenga un comando
/startcon un mensaje de bienvenida. - Responda
/falsocon datos falsos obtenidos de una API. - Responda
/fotoenviando una imagen relacionada con esos datos falsos.
- Tenga un comando
- Poco a poco, añadir más comandos y funcionalidades.
