Usar Telegram desde la terminal (CLI)

Publicado

Para un proyecto actual de desarrollo necesitaba que los resultados de los builds se envien al teléfono, y es para esto que se me ocurrió que podía usar Telegram para el envio de archivos.

Así fue como hice para configuar telegram-send:

Primero: ¿Que es telegram-send?

telegram-send es una herramienta para enviar mensajes de Telegram a través de la línea de comandos, de la terminal. Permite enviar distintos tipos de mensajes, agregar formato, e incluso adjuntar archivos.

Entonces… ¿Cómo lo instalo?

Si bien en la documentación del repositorio se ofrece toda una sección describiendo los pasos para la instalación, en mi caso necesité instalar algunos paquetes adicionales.

Los pasos exactos que tuve que seguir en un Ubuntu 18.04 fueron:

sudo apt-get update
apt-get install python3-pip python3-setuptools
pip3 install wheel telegram-send

(Instalo algunas dependencias adicionales, no descriptas en la documentación)

Y ahora… ¿Cómo se configura?

Bueno, primero que nada necesitamos tener un Bot de Telegram creado. A través de este bot es que la herramienta va a enviar los mensajes. Es decir telegram-send es una herramienta con la que vamos a poder a hacer que nuestro bot de telegram envíe mensajes. Los pasos para crear un bot están bien explicados en la documentación oficial.

Según la documentación de telegram-send, hay que lanzar el programa pasándole la opción --configure o --configure-channel. De esta manera el programa nos muestra un asistente donde nos va pidiendo algunos datos para identificar al bot, y también identificar al chat (o grupo) en el que va a enviar el mensaje.

Si además de esto, se le pasa la opción --config ejemplo.conf, esto le indica al programa que la configuración generada la guarde en ese archivo específico.

En este paso es que tuve algunos problemas, donde el asistente no podía reconocer automáticamente el Chat ID que yo necesitaba. Probando con otro chat pude hacer que el asistente cree finalmente el archivo de configuración… y después yo modifiqué directamente ese archivo creado.

El archivo de configuración ejemplo.conf en cuestión:

[telegram]
token = 123456789:ABC1234-ABC1234
chat_id = -123456789

Teniendo este archivo creado, y conociendo el formato, es que pude ajustar la config usada por la herramienta.

Para usar estas configuraciones ya creadas hay que lanzar el programa pasándole la opción --config ejemplo.conf

Finalmente… ¿Cómo se usa?

Bueno, esta resultó ser la parte más directa y sencilla. Para enviar un archivo app.apk, por ejemplo, tuve que hacer:

telegram-send --config project.conf --file app.apk --caption "Build ${CI_COMMIT_SHORT_SHA}"

Yo además incluí todo esto dentro del CI de Gitlab, y ahora estoy recibiendo como resultado de cada build un mensaje en telegram con la ultima versión de mi aplicación.

El resultado en mi caso, un bot enviandome cada build por telegram

El resultado en mi caso, un bot enviandome cada build por telegram

Nice 🤩