Enviar mensajes a Telegram desde línea de comando – utilizando un script

Introducción

telegram_logoEn una publicación anterior se describieron los pasos necesarios para instalar el cliente de Telegram en Linux para enviar mensajes desde la línea de comando.  Esto es particularmente interesante si se considera para el envío de notificaciones (sistema operativo, aplicaciones, etc.) a un adminstrador o usuario en particular.

Desarfortunadamente para este caso, la herramienta de vysheng presenta una intefaz interactiva.  Revisando diferentes foros y el repositorio de código del proyecto, el autor menciona que tiene pensando incluir un modificador para permitir el envío de mensajes de manera desatendida, sin embargo hasta el momento esa opción no ha sido desarrollada.

Para solventar esta situación he creado un procedimiento muy simple que se describe a continuación.

Precondiciones

  1. El cliente CLI de Telegram ha sido instalado en Linux.
  2. El usuario ha acedido a Telegram desde su teléfono móvil utilizando el número telefónico con el que se va a configurar el cliente CLI.
  3. Se ha ejcutado una primera vez la aplicación CLI de telegram y se ha proporcionado el código que envía el servicio a través de SMS.

Importante!  Debe tenerse en cuenta que durante la configuración inicial de Telegram (paso #3) se crea por defecto el directorio ~/.telegram el cual es por supuesto dependiente del usuario del sistema operativo con que se ejecute así que este paso debe realizarse con el usuario que efectivamente realizará el envío de los mensajes.

Enviar mensajes con una unica instrucción

Para el uso de esta aplicación para el envío de advertencias o notificaciones por parte de software de terceros será necesario poder hacerlo ejecutando una unica instrucción que no requiera de la intervención del usuario.

Para hacer esto con el cliente CLI de Telegram se deberá ejecutar la siguiente instrucción.

$ telegram -k /etc/telegram/server.pub -W <<EOF
msg Pepito_Pimenton "Este es el mensaje"
safe_quit
EOF

En la instrucción anterior deberá ajustarse el destinatario del mensaje (peer) y el mensaje a transmitirse.

Enviar mensajes con un script

Instalación y configuración

Para simplificar este procedimiento he creado el script telegram_sendmsg.sh que se debe copiar en una ruta disponible par los usuarios como por ejemplo /usr/bin.

El script incluye una primera sección de configuración con las siguientes variables.

PROGRAM Cliente CLI de Telegram.Por defecto esta opción se configurará por su propia cuenta si la aplicación ha sido instalada dentro del PATH.  Modifique su valor de lo contrario.
SERVER_PUBKEY Referencia la llave pública del servicio de Telegram.Por defecto utiliza la ubicación global de la llave.  Modifique esta opción si la llave se instaló en otra ubicación.
RECIPIENT Receptor del mensaje.Por defecto recibe el parámetro desde la línea de comando.  Normalmente no debera necesitar modificar este valor.
CONFIG_FILE Configuración de Telegram para el usuario actual que invoca el cliente.Por defecto es vacía y referencia a la ubicación por defecto: ~/.telegram.  Modifique esta opción si la configuración del usuario ha sido creada en otra ubicación.

Uso

Para utilizar el script utilice la siguiente sintáxis.

telegram_sendmsg.sh receptor mensaje

Por ejemplo de la siguiente manera.

$ telegram_sendmsg.sh Pepito_Pimenton "Hola Mundo"

Recursos

4 thoughts on “Enviar mensajes a Telegram desde línea de comando – utilizando un script”

  1. Buenas! Hoy se me ocurrió que podría existir un Cliente Telegram para Linux, busqué en la web oficial y para mi sorpresa descubrí este cliente para línea de comandos y lo primero que se me cruzó por la cabeza fue lo de hacerlo funcionar en un Script sin que sea todo manual. Gracias a vos lo voy a poder hacer!
    PD: Esta guía debería estar en la ayuda del github. ¿No lo pensaste?
    Saludos!

  2. hola ,cuando ejecuto el bash la respuesta de la linea de comando es telegram_sendmsg.sh: no se encontró la orden

    recien comienzo con esto . no tengo la menor idea por que no ejecuta el sh

Leave a Reply

Your email address will not be published. Required fields are marked *