in ,

Envío de Mensajes Automáticos a Telegram Mediante Google Apps Script

Envío de Mensajes Automáticos a Telegram Mediante Google Apps Script

Google Apps Script puede considerarse como un autentico desconocido para la mayoría de usuarios. Incluso a pesar de que es más que normal tener una cuenta de gmail (sobre todo si somos usuarios de smartphones con Android) y por ello, toda la suite de herramientas gratuitas asociadas a dicho servicio, como es el caso de este Google Apps Script. En la entrada anterior ya pudimos ver cómo es posible conectar nuestra cuenta de Gmail a una Hoja de Calculo de Google y «anotar» algunos correos concretos que nos pueden ser de mucho interés.

Hoy vamos a compartir un snippet para enviar mensajes automáticos con bots de Telegram a través de Google Apps Script. Este trozo de código es bastante simple, pero creemos que es una buena introducción al mundo de los bots, los mensajes automáticos y la enorme herramienta que Telegram puede ser para ti.

Antes de meter las manos en harina, sino tienes ningún conocimientos previo de Google Apps Script, lo ideal es que te repasaras bien nuestra Introducción al Manejo de Google Apps Script. Ahí tenemos explicado al detalle cómo empezar con este servicio. Y los conceptos introducidos en dicho artículo te serán necesarios para realizar este tutorial.

En primer lugar, comentar que Telegram es una aplicación de mensajería gratuita que se puede descargar tanto de la App Store de iOS como de la Play Store de Google.

Una vez que tenemos la aplicación, ¡vamos al lio!

Los bots son usuarios autónomos de Telegram que son controlados por instrucciones. Para crear uno, lo primero que debemos hacer es buscar al bot que genera bots (¡Oh, un Terminator para fabricar Terminators!) buscalo usando la barra de búsqueda de la aplicación. El nombre de este bot es @BotFather.

Envío de Mensajes Automáticos a Telegram Mediante Google Apps Script: Accediendo al @BotFather

Una vez que lo tenemos localizado lo iniciamos pulsando el botón de Start.

Al hacer esto nos dará información de todos los comandos que acepta. El que nos interesa en este caso es el de ‘/newbot’, por lo tanto, lo escribimos en el chat con el bot el mismo, y él mismo nos irá diciendo los pasos a seguir como en la siguiente imagen:

Envío de Mensajes Automáticos a Telegram Mediante Google Apps Script: Iniciando el /newbot

El token que nos da, es lo más importante ya que lo usaremos en nuestro código para controlar el bot.

En primer lugar, iniciamos el bot, buscándolo por su nombre en la barra de búsqueda de telegram al igual que hemos hecho con @BotFather o clickando en el enlace proporcionado por @BotFather. Una vez localizado el bot, lo iniciamos. También podemos incluirlo en grupos y canales para que envíe los mensajes dentro de ellos.

Sino dispones de conocimientos previos de Google Apps Script, deberías de leer la sección previa: Introducción al Manejo de Google Apps Script. Ahí tenemos una explicación detallada de cómo comenzar con este servicio totalmente gratuito. Vas a necesitar saber manejarlo si quieres poder completar el tutorial que tenemos en la parte inferior.

Hecho todo esto, abrimos un proyecto en Google Apps Script, y modificamos el snippet siguiente de forma que incluyamos el token del bot en su sitio correspondiente.

var message = '##ESCRIBE AQUI EL MENSAJE QUE QUIERAS ENVIAR##'; var bottoken = '##ESCRIBE AQUI EL TOQUEN DEL BOT##'; var telegramid = '##ESCRIBE AQUÍ EL ID DEL CHAT DONDE QUIERAS ENVIAR EL MENSAJE (PUEDE SER UN USUARIO, GRUPO O CANAL)##';    function telegramurls(){   Logger.log('URL información telegram: ' + 'https://api.telegram.org/bot' + bottoken + '/getUpdates'); }   function sendtelegrampost() {   var telegramurl = 'https://api.telegram.org/bot' + bottoken;   var url = telegramurl + '/sendMessage';   var payload = {     "method": "sendMessage",     "chat_id": telegramid,     "text": message,   } ;   var data = {     "method": "post",     "payload": payload   };   var response = UrlFetchApp.fetch(url, data);   Logger.log(response.getContentText()); }

Como vemos, sólo tenemos 3 variables a configurar:

– message: El mensaje automático que queremos lanzar.
– bottoken: el token del bot que hemos explicado arriba como obtener.
– telegramid: El id del chat en cuestión que explicamos un poco más abajo como obtener.

Posteriormente, lanzamos en Google Apps Script la función telegramurls que nos dará una url que al introducirla en el navegador nos devolverá un texto en el que encontraremos el resto de parámetros que necesitamos. En este caso necesitamos el parámetro que viene de la siguiente forma: «chat»:{«id»:********, Lo que necesitamos son los números y el signo en caso de existir (representados por los asteriscos) que aparecen junto a la palabra «id»:que será el id del chat en cuestión. En caso de que el bot se encuentre en varios chats, solo hay que leer con detenimiento el texto y copiar el id que esté entre llaves junto con el nombre del chat al que deseamos enviar los mensajes.

Bien, ya casi hemos acabado, solo resta incluir este id en nuestro snippet en su posición correspondiente, modificar la parte del mensaje que queremos enviar, ¡y ya podemos usar la función que envía mensajes de Telegram automáticos a través de un bot!

Como es lógico, vamos a proceder a explicar el script en sí mediante un ejemplo. Esto seguro que nos ayuda a asimilar mejor la información y darle algún tipo de utilidad interesante.

Supongamos que somos administradores de un grupo de telegram. Vamos a celebrar un evento o una quedada el proximo jueves 23. Y queremos notificar a todos los usuarios desde la semana anterior hasta el día antes del evento a diario (o 2 veces al día, 3, 4, las que nos parezcan oportunas) de que se celebra dicho evento o incluso, enviar un enlace en el que la gente puede confirmar su asistencia. Podemos hacerlo manualmente varias veces al día pero… ¿cuál es nuestro lema? «Snippets para automatizar tareas aburridas y repetitivas«. Si puede hacerlo una máquina, ¿para qué vamos a estar pendientes nosotros? Pues manos a la obra. Comenzamos a configurar el script.

var message = 'No olvidéis que el próximo jueves 23 tendrá lugar la quedada del grupo MADRID Xiaomi M365 por una cuidad más limpia a las 21:00 en el bar Next Level. En la  Calle de Tudescos nº 4. Os esperamos allí a todos!!'; var bottoken = '667hh788t'; var telegramid = '5678967hhi6688e';    function telegramurls(){   Logger.log('URL información telegram: ' + 'https://api.telegram.org/bot' + bottoken + '/getUpdates'); }   function sendtelegrampost() {   var telegramurl = 'https://api.telegram.org/bot' + bottoken;   var url = telegramurl + '/sendMessage';   var payload = {     "method": "sendMessage",     "chat_id": telegramid,     "text": message,   } ;   var data = {     "method": "post",     "payload": payload   };   var response = UrlFetchApp.fetch(url, data);   Logger.log(response.getContentText()); }

Una vez que tenemos el script puesto en el Editor de Secuencias de Comandos, y teniendo en cuenta que ya hemos hecho el bot (como se explica arriba), y lo hemos iniciado, lo hemos metido en el grupo pertinente y en la variable bottoken hemos puesto la HTTP API que nos ha dado el @botfather, volvemos entonces al Editor de Secuencias de Comandos y lanzamos la función telegramurls().

Acto seguido, vamos a ver -> Registros.

Esto nos mostrará la siguiente ventana:

Envío de Mensajes Automáticos a Telegram Mediante Google Apps Script: Ver el registro para obtener la URL

Una vez tengamos copiada la URL y pegada en el navegador, nos va a mostrar una serie de resultados. Y tal y como se explica arriba, tenemos que localizar el «chat»:{«id»:********, correspondiente al grupo en el que hemos añadido nuestro bot para que este pueda escribir el mensaje automático. Este id es el que tenemos que poner en la variable telegramid.

Con todo esto hecho, ya tenemos nuestro bot operativo. Por lo que sólo queda lanzar la función sendtelegrampost() para comprobar que todo es correcto.

El resultado será algo así.

Envío de Mensajes Automáticos a Telegram Mediante Google Apps Script: Muestra final del mensaje en telegram

Una vez comprobado, solo queda colocar el activador para que el mensaje se envíe de forma automática el número de veces que nosotros creamos pertinente. El cual para este tipo de cosas, nos parece correcto que sea de 1 vez al día a la hora que nos parezca adecuada.

Poniendo el Activador como Necesitamos

En la primera entrada explicamos de manera detallada cómo tenemos que hacer para realizar un activador/disparador.

https://snippetsboard.com/introduccion-al-manejo-de-google-apps-script/
Introducción al Manejo de Google Apps Script

Y con esto, podemos dar por terminado el tutorial. Realmente, es simple y sencillo. Pero nos da una fuerte introducción de la potencia que puede llegar a tener la combinación de Google Apps Script con un servicio de terceros. Como puede ser en este caso, Telegram.

¿Qué opinas?

Escrito por Antonio David Cruz

2 Comentarios

Dejar una respuesta
  1. Gracias me ha servido de mucho, sin embargo, yo en mi caso lo que queiro es que cuando un usuario complete un formulario me llegue al telegram, con tu ejemplo logre generar un mesansaje de aviso que me llega a telgram cuando un usuario llena mi formulario. Lo que no logro es que me envie el contenido del formulario, he agredo esto a tu ejemplo
    funtion fromaap(e){
    var temp= e.values[0]
    var nombre = e.values[1]
    }

    sin embargo, no logro tomar el valor de las variables e incluirlas en el mensaje de telegram. Alguna idea?

One Ping

  1. Pingback:

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Introducción al Manejo de Google Apps Script

Introducción al Manejo de Google Apps Script

Registrar Conversaciones de Telegram en una Hoja de Calculo de Google con Apps Script

Registrar Conversaciones de Telegram en una Hoja de Calculo de Google con Apps Script