Enviar mensajes a Telegram desde línea de comando

Introducción

telegram_logoA continuación se describen los pasos necesarios para construír, configurar y utilizar la herramienta de línea de comando para enviar mensajes a través del servicio de mensajería móvil Telegram.

Para que esta aplicación pueda funcionar correctamente será necesario que previamente haya sido creado el usuario en Telegram, es decir, que el usuario haya utilizado el servicio desde un dispositivo móvil con el número telefónico que utilizará posteriormente para identificarse.

Construcción

Instalar los prerequisitos para la construcción de la aplicación de línea de comando.

$ sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev

Obtener la distribución mas reciente del código fuente de la aplicación.

$ git clone https://github.com/vysheng/tg.git && cd tg

Compilar  y enlazar la aplicación.

$ ./configure 

$ make

Instalación

Ubicar la llave pública del servicio en su ubicación por defecto.

$ sudo mkdir /etc/telegram/

$ sudo cp tg-server.pub /etc/telegram/server.pub

$ sudo chmod 644 /etc/telegram/server.pub

Ubicar el binario de la aplicación en una ruta conocida dentro del PATH.

$ sudo cp telegram /usr/bin

$ sudo chmod 755 /usr/bin/telegram

Uso

Si se siguieron los pasos establecidos anteriormente ubicando la llave pública del servicio bajo /etc/telegram.

$ telegram

De lo contrario, si se decide utilizar una ubicación diferente se deberá especficar la llave pública del servicio con el parámetro -k del comando telegram cada vez que se vaya a ejecutar.

$ telegram -k /ruta/tg-server.pub

Configuración inicial

La primera vez que se ejecuta la aplicación para un usuario específico es necesario configurarla para asociarle la cuenta de Telegram que utilizará.

telegram_firstconfig
Para esto se deben realizar los siguientes pasos.

  1. Especificar el número de teléfono móvil de la forma: +Código del País Teléfono.
  2. Especificar el código enviado por Telegram a ese número telefónico a través de SMS.

Enviar un mensaje

Listar los contactos disponibles.

> contact_list

User #XXXXXXXX: Pepito Pimenton (Pepito_Pimenton 573012345678) offline. Was online [2014/05/12 01:47:42]
...

Para enviar un mensaje se debe utilizar el comando msg con al siguiente sintáxis.

msg <peer> Text

El destinatario (o peer) corresponde con el nombre del contacto reemplazando sus espacios por guíones bajos: Pepito Pimenton -> Pepito_Pimenton.  Por ejemplo.

> msg Pepito_Pimenton "Hola Mundo"

Sugerencia!  Utilice la tecla TAB para autocompletar los comandos de telegram o los nombres de los contactos.

Comandos soportados

Messaging

  • msg <peer> Text – sends message to this peer
  • fwd <user> <msg-seqno> – forward message to user. You can see message numbers starting client with -N
  • chat_with_peer <peer> starts one on one chat session with this peer. /exit or /quit to end this mode.
  • add_contact <phone-number> <first-name> <last-name> – tries to add contact to contact-list by phone
  • rename_contact <user> <first-name> <last-name> – tries to rename contact. If you have another device it will be a fight
  • mark_read <peer> – mark read all received messages with peer

Multimedia

  • send_photo <peer> <photo-file-name> – sends photo to peer
  • send_video <peer> <video-file-name> – sends video to peer
  • send_text <peer> <text-file-name> – sends text file as plain messages
  • load_photo/load_video/load_video_thumb <msg-seqno> – loads photo/video to download dir
  • view_photo/view_video/view_video_thumb <msg-seqno> – loads photo/video to download dir and starts system default viewer

Group chat options

  • chat_info <chat> – prints info about chat
  • chat_add_user <chat> <user> – add user to chat
  • chat_del_user <chat> <user> – remove user from chat
  • rename_chat <chat> <new-name>
  • create_group_chat <user> <chat topic> – creates a groupchat with user, use
  • chat_add_user to add more users

Search

  • search <peer> pattern – searches pattern in messages with peer
  • global_search pattern – searches pattern in all messages

Secret chat

  • create_secret_chat <user> – creates secret chat with this user
  • visualize_key <secret_chat> – prints visualization of encryption key. You should compare it to your partner’s one

Stats and various info

  • user_info <user> – prints info about user
  • history <peer> [limit] – prints history (and marks it as read). Default limit = 40
  • dialog_list – prints info about your dialogs
  • contact_list – prints info about users in your contact list
  • suggested_contacts – print info about contacts, you have max common friends
  • stats – just for debugging
  • show_license – prints contents of GPLv2
  • help – prints this help

Exit the application

  • quit
  • safe_quit

Recursos

7 thoughts on “Enviar mensajes a Telegram desde línea de comando”

  1. Hola, lo primero muy buenos los tutoriales sobre Telegram-cli y Transmission. Me han ayudado mucho a montar el sistema de avisos que “siempre desee”.

    Pero (siempre lo hay… jejejeje). En el móvil no se despliegan las notificaciones porque las considera leídas por la aplicación cliente de linux (telegram-cli). ¿Conoces alguna opción de este cliente para dejar estas notificaciones, desactivar la lectura de los mensajes en el cliente.

    Muchas gracias, por tu paciencia y por compartir tus conocimientos.

  2. Viendo las posibilidades de esto se me ocurrió que quizás estaría bien poder enviar de forma segura cualquier comando a mi raspberry (o a cualquier servidor Linux) desde telegram y obtener la salida. Incluso crear alias de comandos para no tener que escribir demasiado, gestionar usuarios que puedan hacer lo mismo sobre la misma maquina para que cualquiera no pueda hacer lo que le de la gana… etc

    Me he puesto a ello y hoy he publicado ‘Obedience’.
    Si alguien quiere trastear y probarlo, adelante

    https://github.com/GuillermoPena/obedience

  3. Como podria cambiar el numero de telefono de usuario una vez iniciada la aplicación?
    Obviamente no recibo notificaciones en mi dispositivo si tengo que hablar conmigo mismo.

    1. PiHero, aunque supongo que ya lo habrás solucionado, la única manera que conozco de cambiar el número de teléfono es borrando el directorio oculto .telegram en el home del usuario con el que has instalado telegram-cli y volver a instalar desde cero para activar la cuenta cliente con el número de teléfono que te interese.

Leave a Reply

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