En esta entrada vamos a ver de una forma sencilla un ejemplo de cómo podemos hacer uso de Python para automatizar el envío de mensajes automáticos por Telegram.
Los pasos a realizar serán sencillo, crearemos un bot, lo añadiremos al chat donde queramos publicar, obtendremos el ID de este chat, y haremos la programación en Python para mandar los mensajes.
Índice de contenido
Crear un bot de Telegram
Para poder publicar en un chat de Telegram desde cualquier lenguaje, hemos de crear un nuevo bot.
Lo primero que hemos de hacer es entrar en telegram y buscar @BotFather y abrir una conversación con él

Si escribimos el comando /start nos dará una lista de órdenes que podemos enviarle, en nuestro caso le enviaremos /newbot y seguiremos los pasos que nos marca, en mi caso tuve que seleccionar un nuevo nombre ya que el primero estaba en uso:


Bot creado, si nos fijamos, nos ha dado un token para acceder al API HTTP de Telegram, lo guardaremos para más adelante.
Cómo obtener el ID del grupo de Telegram
Ya tenemos listo nuestro bot, pero, para poder hacer peticiones al api de Telegram y publicar mensajes en un chat, necesitaremos también el ID del grupo de Telegram donde queremos publicar, para ello, haremos uso de otro bot, llamado @get_id_bot. Solo tenemos que buscarlo, añadirlo a nuestro chat y enviarle el comando /get_id:


Por último, también hemos de añadir nuestro bot recién creado al grupo donde queremos publicar, lógico 😉
Listo, ya tenemos todo lo necesario para publicar mensajes usando el API de Telegram: el ID del grupo y el Token de nuestro bot.
Enviar mensajes a Telegram con Python
Veamos el script para enviar mensajes a Telegram desde Python paso por paso, primero importamos las librerías y declaramos las variables del id del bot y del grupo:
#!/usr/bin/env python3 import requests idBot = 'ID_DEL_BOT' idGrupo = 'ID_DEL_GRUPO_DONDE_PUBLICAR'
La primera línea indica que vamos a usar la versión 3 de python, y, la librería requests, nos será útil para hacer peticiones http.
Para enviar texto y archivos, ya sean imágenes, videos, pdf, etc, vamos a crear estas dos funciones:
def enviarMensaje(mensaje): requests.post('https://api.telegram.org/bot' + idBot + '/sendMessage', data={'chat_id': idGrupo, 'text': mensaje, 'parse_mode': 'HTML'}) def enviarDocumento(ruta): requests.post('https://api.telegram.org/bot' + idBot + '/sendDocument', files={'document': (ruta, open(ruta, 'rb'))}, data={'chat_id': idGrupo, 'caption': 'imagen caption'})
Son muy fáciles de entender, lo único que haremos será hacer una llamada post al api pasando una serie de parámetros.
Para invocar a estas funciones, solo necesitamos un texto en el primer caso, y la ruta completa de un documento en el segundo:
enviarMensaje("Hola, soy un bot y estoy mandando un mensaje a Telegram usando Python") enviarDocumento("esta/es/la/ruta/completa/del/documento.jpg")
Esta funcionalidad podemos extenderla hasta el infinito, por ejemplo, en mi caso, tengo el script automatizado para que se ejecute de Lunes a Viernes, y, en función del día en el que estemos, lee el texto de una posición determinada de un excel y obtiene los ficheros de una serie de rutas para enviar ambas cosas.
Espero que os haya sido de ayuda!
Saludos!