Cómo crear un bot de Telegram con Python en pocos minutos

  • Un bot de Telegram es una cuenta automatizada que responde a mensajes y comandos, ideal para automatizar tareas y conectar servicios externos.
  • Para crear un bot con Python solo necesitas BotFather, Python 3, la librería adecuada y un entorno donde alojar el script.
  • Puedes interactuar con la API de Telegram usando librerías como python-telegram-bot o directamente vía HTTP con requests para enviar texto y multimedia.
  • Los bots resultan útiles tanto a nivel personal como profesional, permiten integraciones avanzadas y pueden llegar a monetizarse si aportan valor real.

cómo usar python para crear un bot de Telegram

Crear un bot de Telegram con Python está mucho más al alcance de la mano de lo que suele parecer a primera vista. No necesitas ser desarrollador senior, ni tener mil horas libres, ni montar una mega infraestructura en la nube: con un poco de curiosidad, un ordenador (o incluso tu móvil) y ganas de trastear, puedes tener tu primer bot funcionando en cuestión de minutos.

En este artículo vas a ver qué es exactamente un bot de Telegram, para qué sirve, cómo crearlo con Python paso a paso usando diferentes enfoques (con librerías, sin librerías y con herramientas no-code) y cómo llevarlo un poco más allá: añadirlo a grupos, usarlo en tu empresa, alojarlo en la nube, automatizar tareas, monetizarlo y evitar los errores típicos que se cometen al principio.

¿Qué es un bot de Telegram y por qué se ha vuelto tan popular?

Un bot de Telegram es, básicamente, una cuenta automatizada que responde a mensajes y comandos sin que haya una persona pendiente del chat. Telegram lo trata como un usuario más, pero en realidad detrás hay un programa que recibe las actualizaciones desde la API y envía respuestas según lo que le hayas programado o configurado.

Estos bots se usan para resolver tareas muy concretas dentro de la aplicación: contestar preguntas frecuentes, gestionar reservas, enviar alertas, lanzar encuestas, moderar grupos, recuperar datos de otras APIs (tiempo, bolsa, criptomonedas, incidencias técnicas), controlar dispositivos IoT o servir de interfaz sencilla para sistemas más complejos que tengas por detrás.

A diferencia de otros sistemas de mensajería, en Telegram los bots destacan porque la API es muy abierta, bien documentada y con pocas restricciones. No tienes que pedir permisos especiales ni pasar revisiones eternas para poner tu bot en marcha: hablas con BotFather, obtienes tu token y ya puedes conectar tu código.

Esta filosofía tan abierta ha provocado que aparezcan bots de todo tipo: para finanzas personales, automatización de tareas en grupos, juegos y trivials, bots que integran Google Calendar, recordatorios, envío de newsletters, control de luces inteligentes o paneles de control para servidores, por poner solo algunos ejemplos.

El estallido de plataformas no-code y low-code (Manybot, Chatfuel, Make, n8n, etc.) también ha ayudado a que mucha gente cree bots sin picar una sola línea de código. A la vez, la comunidad de desarrolladores de Telegram mantiene ejemplos, librerías y plantillas que facilitan la vida a quien decide tirar por Python, Node.js o PHP.

Requisitos básicos para crear un bot de Telegram con Python

Para montar tu bot en Python necesitas muy pocas cosas, pero es importante tenerlas claras desde el principio para no volverte loco. Esto es lo mínimo:

  • Python 3 instalado en tu equipo (Windows, macOS o Linux). Puedes descargarlo desde el sitio oficial de Python si aún no lo tienes.
  • pip o pip3 operativo para poder instalar librerías desde la línea de comandos. En la mayoría de instalaciones de Python 3 ya viene integrado.
  • La librería python-telegram-bot (u otras alternativas) que simplifican la comunicación con los servidores de Telegram.
  • Un token de bot generado a través de @BotFather, que será la clave con la que tu script se autentica frente a la API de Telegram.

Conviene que tengas también cierto manejo básico de la terminal o consola para moverte por carpetas, ejecutar scripts y, si quieres ir un poco más lejos, instalar dependencias en un entorno virtual de Python.

Crear tu bot con BotFather paso a paso

El punto de partida siempre es el mismo: crear el bot dentro de Telegram usando BotFather, que es el bot oficial que gestiona el resto de bots. El flujo es sencillo y no requiere conocimientos técnicos.

  • Abre la app de Telegram y busca el usuario @BotFather.
  • Entra en el chat y envía el comando /newbot para iniciar el asistente.
  • Elige un nombre visible para tu bot (es el que verán los usuarios en la parte superior del chat).
  • Elige un username único que termine en bot, por ejemplo: MiBotClimaBot. Este identificador no se puede repetir, así que quizá tengas que probar varias opciones.

Cuando termines el asistente, BotFather te devolverá un mensaje con el token secreto de acceso, que tendrá un formato parecido a 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Ese token es tu llave para llamar a la API de Telegram como ese bot.

Es importante que guardes ese token en un lugar seguro y que no lo pegues en foros, capturas de pantalla públicas ni repositorios sin proteger. Si se filtra, cualquiera podría controlar tu bot. En proyectos más serios se usa una variable de entorno o un fichero de configuración que no se sube al control de versiones.

Preparar el entorno de desarrollo en Python

cómo usar python para crear un bot de Telegram

Con el bot creado, toca preparar el entorno para que tu script pueda conectarse sin problemas a los servidores de Telegram. El flujo habitual es instalar Python, comprobar pip y añadir las librerías necesarias.

En la mayoría de sistemas basta con instalar Python 3 desde python.org o el gestor de paquetes de tu distribución Linux y, a continuación, usar pip para añadir la librería que usaremos en los ejemplos básicos: python-telegram-bot.

El comando típico sería algo como pip3 install python-telegram-bot. Dependiendo de tu sistema y de cómo tengas instalado Python, puede bastar con pip install python-telegram-bot sin el 3. Esta librería se encarga de gestionar por ti la conexión con la API, el manejo de actualizaciones, los handlers para comandos, etc.

Si quieres encapsular bien las dependencias y no «ensuciar» el sistema, es recomendable usar entornos virtuales de Python (venv). Con esto cada proyecto tiene sus propias versiones de librerías, lo cual evita conflictos cuando trabajas con varios bots o scripts distintos en la misma máquina.

Primer bot de Telegram con python-telegram-bot

Una vez que tienes el entorno listo, es momento de escribir el clásico ejemplo mínimo que responde a un comando. Crearemos un archivo, por ejemplo bot.py o tecsify.py, e incluiremos un código base sencillo que puedas entender de un vistazo.

La idea general es siempre la misma: importas las clases de la librería, defines las funciones que responden a los comandos, asocias cada comando a su handler y arrancas un loop que escucha continuamente las actualizaciones que llegan desde Telegram.

Con las versiones modernas de python-telegram-bot se utiliza un modelo basado en ApplicationBuilder, CommandHandler y MessageHandler, junto con funciones asíncronas. Un ejemplo típico de bot eco podría:

  • Definir una función para responder al comando /start con un mensaje de bienvenida.
  • Definir otra función que repita cualquier texto que reciba, para comprobar fácilmente que todo funciona.
  • Crear la aplicación con el token proporcionado por BotFather y registrar los handlers para los comandos y los mensajes de texto.
  • Ejecutar run_polling() para que el bot comience a escuchar y responder.

Este enfoque basado en librería hace que no tengas que preocuparte de los detalles de bajo nivel de la API de Telegram (formato de las peticiones, endpoints concretos, parseo de las actualizaciones en JSON, etc.). Para un primer bot es la opción más recomendable, sobre todo si no quieres complicarte demasiado.

Ejecutar el bot y probarlo en Telegram

Cuando ya tengas tu archivo Python creado, el siguiente paso es lanzar el script desde la terminal. Primero sitúate en la carpeta donde guardaste el fichero, por ejemplo:

cd ruta/de/tu/proyecto

A continuación ejecuta el comando de Python que corresponda en tu sistema, por ejemplo python bot.py o python3 tecsify.py, dependiendo del nombre que le hayas puesto al archivo. Si todo está bien instalado, verás algún mensaje de arranque o simplemente la terminal quedará a la espera.

Mientras el programa siga activo, el bot estará escuchando nuevas actualizaciones y respondiendo. Si quieres detenerlo manualmente, normalmente basta con pulsar Ctrl + C en la consola para que el proceso se cierre.

Para probarlo, abre la app de Telegram, busca el nombre o el usuario de tu bot (el que definiste con BotFather) y escribe el comando /start. Si has configurado bien el código, deberías ver tu mensaje de bienvenida. Luego puedes enviar cualquier texto para comprobar que la función eco responde correctamente.

Telegram aún no cumple los requisitos de uso por la UE
Artículo relacionado:
Telegram aún no cumple las normativas europeas para operar en la Unión Europea

Crear un bot mínimo con python-telegram-bot de estilo clásico

Además del modelo más reciente con ApplicationBuilder, existe un patrón de uso muy conocido que usa clases como Updater y CommandHandler. Aunque la librería ha ido evolucionando, este esquema ayuda a entender bien la estructura básica de un bot en Telegram con Python.

La lógica general consiste en definir una función asociada al comando /start que envía un texto básico de saludo al chat donde se ha ejecutado el comando. Después se crea un objeto Updater pasando el token del bot y se recoge su dispatcher, que es quien registra y gestiona todos los handlers.

Con esto puedes añadir un CommandHandler para /start apuntando a tu función start, iniciar el polling con updater.start_polling() y dejar que el script quede a la escucha de nuevos comandos. Es un ejemplo sencillo y directo para ver, en muy pocas líneas, cómo un comando se traduce en un mensaje de respuesta en un chat de Telegram.

Interactuar con la API de Telegram sin librerías específicas

Si quieres profundizar un poco más y entender qué ocurre por debajo, también puedes crear tu bot sin ninguna librería específica para Telegram. En lugar de eso, utilizas una librería genérica HTTP como requests y llamas directamente a la API de bots de Telegram mediante peticiones POST y GET.

El mecanismo básico para enviar un mensaje de texto a un canal o chat sería llamar a la URL https://api.telegram.org/bot<TOKEN>/sendMessage pasando en el cuerpo de la petición parámetros como chat_id y text. Requests te permite hacerlo en una sola línea, aunque normalmente conviene guardar la respuesta en una variable para comprobar si la API ha devuelto ok o un error.

Si quieres ver la respuesta en bruto que envía Telegram, puedes imprimir el texto de la respuesta, que llega en formato JSON. Python también incluye el módulo json, con el que puedes transformar esa cadena en un diccionario y comprobar, por ejemplo, el campo data[‘ok’] para saber si la llamada ha ido bien.

Este enfoque a bajo nivel tiene la ventaja de que controlas al detalle cada llamada a la API, sin capas intermedias. Es perfecto para scripts sencillos que quieren enviar notificaciones a un canal o grupo desde una tarea programada, un servidor o un sistema de monitorización. Además, es fácil meterlo en cron o integrarlo en otros lenguajes usando el mismo patrón de peticiones HTTP.

Parámetros y opciones extra al enviar mensajes

Cuando usas directamente la API de Telegram, no solo puedes mandar texto plano; también hay una serie de parámetros opcionales que afinan cómo se muestra ese mensaje en la app, y que conviene conocer si quieres dar una mejor experiencia al usuario.

Algunos de los parámetros más útiles son, por ejemplo, parse_mode, que te permite indicar si el contenido está formateado como Markdown o como HTML. Muchos desarrolladores prefieren HTML porque el subrayado y otros símbolos de Markdown pueden dar problemas en ciertas situaciones.

También puedes utilizar disable_web_page_preview para evitar que Telegram genere la vista previa cuando añades un enlace, o disable_notification para que el usuario reciba el mensaje sin sonido ni notificación emergente. Esto es útil para bots que lanzan muchas alertas y podrían resultar molestos.

Otros parámetros importantes son reply_to_message_id, que sirve para indicar que un mensaje es respuesta a uno anterior, y reply_markup, donde puedes definir teclados personalizados o inline keyboards. Esto último abre la puerta a crear flujos conversacionales mucho más ricos sin que el usuario tenga que escribir tanto texto.

Pasar argumentos a tu script para más flexibilidad

Un script que siempre envía el mismo mensaje al mismo chat puede resultar útil para pruebas, pero lo normal es querer algo más flexible, es decir, poder indicar a qué chat se envía cada mensaje y qué contenido se manda sin tocar el código cada vez.

Para eso puedes aprovechar el módulo sys de Python y recoger argumentos desde la línea de comandos. Por ejemplo, podrías hacer que el primer argumento sea el chat_id y el segundo el texto del mensaje, de forma que tu script reciba algo como: identificador y contenido entre comillas.

Con un pequeño condicional comprobando que len(sys.argv) tiene al menos tres posiciones (nombre del script, chat_id y mensaje) puedes construir la petición POST a la API usando esos valores, sin necesidad de modificarlos dentro del fichero. Así tu script se vuelve reutilizable para distintos canales, grupos y textos simplemente cambiando lo que escribes en la consola.

Enviar imágenes, audio, vídeo y documentos con tu bot

cómo usar python para crear un bot de Telegram

Más allá del texto, la API de Telegram permite mandar todo tipo de contenido multimedia desde tu bot: fotos, notas de voz, archivos de audio, vídeos, video notes y documentos. Con la librería requests o con python-telegram-bot, la idea es siempre muy parecida: usar el endpoint adecuado y los parámetros correctos.

Para las imágenes puedes tirar por dos caminos: enviar la URL de una foto que ya esté alojada o subir el archivo directamente como parte de la petición. En el primer caso indicas el parámetro photo con la dirección de la imagen y, opcionalmente, una caption o pie de foto. En el segundo, usas el campo files de requests para adjuntar el archivo binario abierto en modo lectura.

Algo similar ocurre con el audio: puedes enviar un archivo como voice (nota de voz, el típico círculo que aparece en los chats) o como audio normal, que se muestra más como una pista de música. En ambos casos se permite añadir un caption opcional y una miniatura o thumbnail, que suele ser una imagen en formato JPEG con tamaño y peso limitados.

Para los vídeos existe tanto el método de sendVideo como el de sendVideoNote, este último pensado para los vídeos cortos en formato circular tipo «video nota». Además del chat_id y el archivo, puedes incluir parámetros como duration (duración del clip) y length (dimensión del vídeo, en este caso el diámetro del círculo).

Y si lo que quieres es adjuntar prácticamente cualquier cosa (PDF, ZIP, hojas de cálculo, etc.), la API proporciona el método sendDocument. A nivel de código, la estructura es muy parecida a la de enviar un audio o una foto: se abre el fichero, se construye el diccionario files con la clave document y, si quieres, se añade también una miniatura representativa.

Usar APIs externas: ejemplo de bot del tiempo

Una de las grandes ventajas de los bots de Telegram es que pueden conectarse a servicios externos para ofrecer datos en tiempo real. Un ejemplo clásico es el bot de clima, que pregunta tu ubicación y devuelve la información meteorológica correspondiente a esa coordenada.

Para conseguirlo puedes apoyarte en APIs públicas de terceros, como OpenWeatherMap, que dispone de una librería Python llamada pyowm. La dinámica general consiste en pedir una API key en la web de OpenWeatherMap, instalar pyowm con pip y combinarla con tu bot para consultar el tiempo cuando el usuario lo solicite.

En un escenario típico, el bot mostrará un teclado personalizado con un botón tipo «Get Weather». Cuando el usuario lo pulsa, el bot le pide que envíe su ubicación. Una vez la recibe, se crean los objetos de pyowm con las coordenadas de latitud y longitud, se consulta el clima y se monta un mensaje con el estado, temperatura, lugar y hora de referencia.

Para gestionar estas interacciones, algunos desarrolladores utilizan la librería twx.botapi, que encapsula las llamadas a la API de Telegram y permite trabajar con ReplyKeyboardMarkup para construir ese teclado personalizado. Luego se entra en un bucle que va leyendo updates, filtrando los nuevos por su update_id y procesando cada mensaje según sea texto o ubicación.

Diferentes formas de crear un bot: código vs no-code

Telegram da tanta libertad que tienes varias formas de plantear tu bot según tu nivel técnico y el tiempo que quieras invertir. No todo pasa por programar desde cero; también puedes usar plataformas visuales o soluciones híbridas.

Si sabes programar o quieres aprender, lo habitual es ir a por el código propio en Python, Node.js o PHP. Python brilla por su sintaxis sencilla y la cantidad de documentación y ejemplos; Node.js se integra estupendamente cuando ya tienes proyectos en JavaScript; y PHP sigue siendo útil en entornos donde ya hay servidores con este lenguaje desplegado.

Cuando no te apetece picar código, o lo que quieres es validar una idea rápido, puedes recurrir a herramientas no-code como Manybot, Chatfuel, Tars, Make o n8n. Suelen ofrecer interfaces de bloques o diagramas de flujo donde arrastras condiciones, preguntas, respuestas y conexiones con otras apps sin escribir sintaxis de programación.

También hay soluciones intermedias que combinan hojas de cálculo tipo Airtable o Google Sheets conectadas a Make o n8n, de forma que el bot lee y escribe datos desde ahí. Es una manera muy práctica de montar MVPs, pequeños sistemas de reservas o automatizaciones sencillas, y solo dar el salto a un desarrollo a medida cuando el proyecto lo necesita.

Dónde alojar tu bot y cómo mantenerlo activo

Conviene aclarar un punto importante: Telegram no ejecuta el código de tu bot, solo ofrece la API y gestiona el envío y recepción de mensajes. El programa que has escrito debe estar corriendo en algún sitio para que el bot responda en cualquier momento, incluso mientras tú estás desconectado.

cómo automatizar bots Telegram Desktop
Artículo relacionado:
Cómo desactivar Personas cerca en Telegram y evitar el rastreo por proximidad

Para eso necesitas un servidor o servicio de hosting, ya sea físico o en la nube. Hay opciones gratuitas o freemium populares entre principiantes, como Replit o Render, que permiten publicar proyectos sencillos sin coste inicial y mantener tu script en ejecución (con ciertas limitaciones de recursos).

Si quieres algo más estable y configurable, puedes optar por proveedores como DigitalOcean, Railway u otros VPS donde montas tu propio entorno de Python o Node.js. Esto te da muchas más garantías si tu bot está en producción o si necesitas control fino sobre el sistema operativo, el firewall, el sistema de colas, etc.

En resumen, la idea es que tu script de Python (o el lenguaje que uses) esté siempre activo en un entorno controlado, conectándose a la API de Telegram mediante polling o webhooks. En entornos más complejos suele usarse un servidor web como Nginx y frameworks como Flask o FastAPI para gestionar las peticiones entrantes de Telegram vía HTTPS.

¿Cómo añadir un bot de Telegram a un grupo?

Una vez que tu bot funciona en chats privados, lo siguiente suele ser integrarlo en grupos o canales para que interactúe con varias personas a la vez, modere conversaciones o aporte información en tiempo real a toda la comunidad.

El proceso desde la app es muy directo: buscas el bot por su nombre, entras en su perfil y usas la opción «Agregar a grupo o canal». Desde ahí eliges el grupo concreto donde quieres meterlo y, si Telegram te lo pide, confirmas que estás de acuerdo con los permisos solicitados.

Es fundamental revisar después los permisos específicos del bot dentro del grupo: si solo debe responder a comandos, asegúrate de que pueda leer mensajes y escribir; si va a actuar como moderador, necesita permisos de administrador para borrar contenido, expulsar usuarios o fijar mensajes según lo que quieras que haga.

Ejemplos habituales en grupos son los bots anti-spam, los que lanzan encuestas automáticamente, los que sincronizan tareas con Google Calendar o herramientas de trabajo colaborativo, y los que envían reportes programados (por ejemplo, un resumen diario de métricas, incidencias o noticias relevantes para el equipo.

Usar un bot de Telegram en tu empresa o proyecto profesional

Más allá de la parte lúdica, un bot bien planteado puede convertirse en una pieza clave de la estrategia digital de una empresa. El abanico de usos es muy amplio y, en muchos casos, barato de implementar comparado con otras soluciones.

Uno de los casos más frecuentes es la atención al cliente 24/7, donde el bot responde a preguntas típicas sobre envíos, horarios, tarifas o políticas, y solo pasa la conversación a un humano cuando detecta consultas complejas. También se usa mucho para automatizar el seguimiento de pedidos, permitir que el usuario consulte el estado de una compra o recuperar facturas sin colapsar al equipo de soporte.

En sectores como el e-commerce, academias online o restauración, los bots facilitan reservas, inscripciones, recordatorios de clases, envío de material, gestión de sorteos o campañas promocionales, y recopilación de datos (por ejemplo, encuestas de satisfacción) sin fricción para el usuario.

Existen casos conocidos de empresas que han reducido de forma notable sus costes operativos y tiempos de respuesta apoyándose en bots de Telegram, ya sea de forma directa o como complemento a su web y sus redes sociales. Integrados con herramientas de pago, CRMs y plataformas de email marketing, permiten montar auténticos embudos de conversión dentro de la app de mensajería.

Errores habituales al crear un bot de Telegram

Cuando alguien se lanza a crear su primer bot suele tropezar con los mismos fallos una y otra vez, la mayoría muy fáciles de evitar si se conocen de antemano. Tenerlos en mente te ahorrará bastantes quebraderos de cabeza.

El error más clásico es construir un bot sin una función clara, enfoque o utilidad concreta. Si no sabes exactamente qué problema resuelve o qué tarea automatiza, es fácil que el bot acabe siendo un juguete que nadie usa. Definir bien el propósito antes de programar te ayudará a decidir qué comandos, flujos y respuestas necesitas.

Otro fallo muy común tiene que ver con los permisos cuando añades el bot a grupos o canales. Si no le das los permisos adecuados, parecerá que no funciona: no verá los mensajes, no podrá borrarlos, no podrá fijarlos… Lo mismo pasa si confundes el chat_id de prueba con el definitivo; el bot puede estar enviando respuestas a un sitio distinto de donde tú estás mirando.

La gestión del token también es delicada: publicar el token sin querer en un repositorio, una captura o un foro deja la puerta abierta a que otra persona controle tu bot. Lo recomendable es guardarlo en variables de entorno, ficheros de configuración no versionados y, si se filtra, regenerarlo desde BotFather lo antes posible.

Por último, hay quien da por cerrado el desarrollo sin hacer pruebas mínimas de comportamiento: comprobar qué pasa si el usuario envía datos inesperados, si escribe comandos mal, si manda archivos de tamaños inusuales, etc. Probar unos cuantos casos de uso real antes de «lanzar» el bot ayuda a depurar mucho la experiencia.

Monetizar un bot de Telegram: opciones y consideraciones

Monetizar bots de Telegram es posible, aunque suele requerir un enfoque algo más elaborado que simplemente poner un botón de pagar. La clave está en que el bot ofrezca un valor claro y recurrente que alguien esté dispuesto a pagar.

Una de las fórmulas más usadas es el acceso premium por suscripción. El usuario puede disponer de funciones básicas gratis, y acceder a opciones avanzadas o contenido exclusivo mediante un pago mensual o anual. También se puede limitar el volumen de uso gratuito y desbloquear más capacidad mediante planes de pago.

Otra vía habitual es integrar pasarelas de pago como Stripe o PayPal, de forma que el bot vende directamente productos, servicios, cursos, libros digitales, consultorías, etc. También cabe la opción de utilizarlo como soporte para programas de afiliados, recomendando herramientas y servicios con enlaces de afiliación y generando comisiones.

En el ámbito educativo y de contenidos, muchos creadores usan bots para entregar newsletters de pago, lecciones estructuradas, retos diarios o bibliotecas digitales accesibles solo a quienes tienen una suscripción activa. Lo importante aquí es diseñar un flujo claro y cómodo de alta, baja y gestión de pagos.

Ultimas consideraciones

Si decides cobrar por servicios digitales a través de tu bot, tienes que respetar la normativa de protección de datos (como el RGPD en Europa), informar correctamente de qué información recopilas, cómo la usas y dónde se almacena, y cumplir las obligaciones fiscales que correspondan en tu país. Telegram también tiene unos términos de uso que conviene revisar si vas a hacer un uso intensivo de su plataforma.

cómo automatizar bots Telegram Desktop
Artículo relacionado:
Automatización y bots en Telegram Desktop con IA

Con todo lo visto, se aprecia que un bot de Telegram desarrollado en Python, bien sea con librerías especializadas o atacando directamente la API mediante peticiones HTTP, puede pasar de juguete a herramienta seria: automatiza tareas repetitivas, conecta servicios externos, mejora la atención al usuario, se integra en grupos y canales, puede alojarse en distintas plataformas y hasta abrir vías de ingreso si se planifica con cabeza y se cuidan aspectos como permisos, seguridad del token, hosting y cumplimiento normativo. Comparte esta guía y más usuarios sabrán crear un bot de Telegram usando Python.


Add as preferred source