dasdasdadasdasdasdas

Crea un bot de Telegram con Node-RED

Valery Durán Morales

¿Qué es un bot?

Los bots son pequeños programas que se encuentran en los servidores y pueden ser llamados en cualquier momento para conseguir ciertas funcionalidades; pueden ser hechos por diferentes personas y configurados a su vez, es una funcionalidad que nos hace algunas tareas más fáciles ya que podemos pedir el clima en algunos de ellos, fecha y hora en tiempo real, y se puede simular una conversación al natural con ciertas palabras que se envíen.
  

Astrum • Text and Image

Software necesario:

Astrum - Prueba 1 a tres columnas

Node-RED

Node-RED es una herramienta de programación para conectar dispositivos de hardware, API y servicios en línea de formas nuevas e interesantes. 

Proporciona un editor basado en navegador que facilita la conexión de flujos utilizando la amplia gama de nodos en la paleta que se pueden implementar en su tiempo de ejecución con un solo clic. 


Astrum - Prueba 2 a tres columnas

Telegram

Telegram es una aplicación de mensajería instantánea que ha surgido a lo largo de los años, esta permite tener conversaciones y llamadas en tiempo real; cuenta también con contenidos gráficos como GIF, clips de video, sticker y bots. 

Esta plataforma está disponible para todas las plataformas (smartphones, tabletas, computadoras). Así mismo ofrece una gran seguridad a sus usuarios, creando también chats secretos cifrados de extremo a extremo; de igual manera ofrece un servicio basado en la nube ilimitado de fotos, videos y documentos. 

Creación del bot

Astrum - Prueba 1 a tres columnas

Búsqueda del BotFather

Abrimos nuestra aplicación de Telegram en el celular o en nuestra computadora, le damos clic en nuevo chat y buscamos el BotFather, automáticamente nos despliega un mensaje y un boton de START.

Astrum - Prueba 2 a tres columnas

Comienza un chat con el BotFather

Le damos clic al botón de START para comenzar a chatear con el bot y nos despliega un menú de opciones para que le indiquemos qué queremos hacer.

Astrum - Prueba 3 a tres columnas

Le decimos al BotFather que queremos crear un nuevo bot

En el menú de opciones esta la sentencia /newbot que nos indica que con ésta podremos crear nuestro bot, así que la escribimos y se la enviamos al BotFather.

Astrum - Prueba 1 a tres columnas

Elegimos el nombre de nuestro bot

Después de que enviamos la sentencia de /newbot nos dice que le demos un nombre a nuestro bot, así que le enviamos el nombre que tenemos pensado para nuestro bot, te recomiendo que sea algo que recuerdes y que esté ligado al tema en el que lo vas a ejecutar.

Astrum - Prueba 2 a tres columnas

Nombre de usuario de nuestro bot (prueba)

Después de asignarle un nombre a nuestro bot nos pedirá que le asignemos un nombre de usuario y te indica que éste debe terminar con la palabra bot, te da algunos ejemplos. Ojo esos son ejemplos de nombres de bots que ya existen, si pones alguno de ellos te dirá que ese nombre no esta disponible y te pedirá que elijas uno nuevo.

Astrum - Prueba 3 a tres columnas

Nombre de usuario y token

Ahora enviamos un nuevo nombre de usuario, podemos utilizar el nombre que le asignamos a nuestro bot y agregarle la palabra bot o _bot al final como nos indico el BotFather, si el nombre está disponible lo aprobara y nos generará un token, este es muy importante, debes guardarlo muy bien, ya que es nuestra clave para enlazarlo con Node-RED 

NOTA: Cada token es personal                                                                  ¡NO LO COMPARTAS!

Astrum - Prueba 1 a tres columnas

Edición del bot

Para poder editar y personalizar nuestro bot podemos consultar /help enviándolo al chat del BotFather, en enviar esta sentencia nos desplegara una lista de comandos indicándonos que podemos hacer con cada uno.


Astrum - Prueba 1 a tres columnas

/setuserpic

Dentro de la opciones seleccionaremos /setuserpic que nos permitirá cambiar la foto de perfil de nuestro bot.

Astrum - Prueba 2 a tres columnas

Selección del bot

Al enviar el comando nos solicitara seleccionar el bot que queremos modificar, al seleccionarlo nos pedirá que enviemos la foto que queremos colocar en el perfil.

Astrum - Prueba 3 a tres columnas

Foto de perfil

En cuanto el BotFather reciba la foto que enviamos, nos indicara que esta ha sido actualizada con éxito.

Astrum - Prueba 1 a tres columnas

Revisión de cambios

En seguida podemos buscar nuestro bot y confirmar que la foto de perfil ha sido actualizada con éxito.

Configuración de bot con Node-RED

Astrum • Image and Text

GitBash

Abrimos GitBash en nuestra pc y ejecutamos el comando node-red, si no haz instalado Node-RED puedes consultar nuestro manual. El GitBash comenzara a cargar node-red, es importante mantenerlo corriendo mientras usamos Node-RED de lo contrario este no funcionara.

 Astrum • Image and Text

Ejecutar Node-RED

Cuando termine de ejecutarse node-red en gitbash nos arrojara un link o simplemente podemos teclear en nuestro buscador 127.0.0.1:1880 para poder acceder a Node-RED y comenzar a configurar nuestro bot.

Astrum • Image and Text

Descarga de nodos de Telegram

Una vez en Node-RED nos vamos a Manage Palette le damos clic en install y buscamos los nodos de Telegram, nos aparecerán varios paquetes de nodos, nosotros instalaremos node-red-contrib-telegrambot-home ya que este nos servirá perfectamente para lo que queremos hacer.

Astrum • Image and Text

Configurar nodo

Insertamos un nodo command y le damos clic para configurarlo, nos vamos al lapicito que aparece ahí para poner el nombre de nuestro bot y su token.

Astrum • Image and Text

Mensaje que recibe el usuario

Una vez configurado el bot, le damos un nombre a nuestro nodo y donde dice command insertamos el mensaje que queremos que reciba el usuario en forma de string, que es para variables conformadas por letras.

Astrum • Image and Text

Debug

Insertamos un nodo de debug que es donde se refleja la salida del mensaje que envía nuestro bot. damos clic sobre el nodo para configurarlo y elegimos la opción complete msg objet.

Astrum • Image and Text

Change

Insertamos un nodo de change, que, como su nombre lo dice va a cambiar las propiedades de nuestro mensaje.

Astrum • Image and Text

Características de nuestro change

 Indicaremos que nuestro nodo debe tomar el mensaje de  global.fromTelegram  que es el "Hola" que declaramos al inicio y lo modificara a msg.telegram.from.first_name que agregara al mensaje el primer nombre del usuario.

Astrum • Image and Text

Function

Agregamos un nodo function al cual llamaremos "Nombre de usuario"
Astrum • Image and Text

Function code

var usuario = global.get ("fromTelegram")                        msg.payload = "Hola "  + usuario                                      return msg;

Astrum • Image and Text

Telegram notify

Insertamos un nodo de notify le damos clic para abrir sus configuración y seleccionamos nuestro bot. 

Astrum • Image and Text

Debug final

Insertamos otro nodo de debug, esta vez para que muestre el mensaje de "Hola + usuario"

Astrum • Image and Text

Deploy

Unimos nuestros nodos y damos clic de deploy para guardar los cambios

Astrum • Image and Text

Prueba de funcionamiento

Abrimos nuestra aplicación de Telegraram, buscamos nuestro bot, le damos clic en START y le enviamos un Hola, este nos responde con un Hola y nuestro nombre de usuario, podemos revisar las salidas en Node-RED en el apartado de debug.

Astrum • Image and Text

Personaliza el flujo

Podemos cambiarle el nombre a nuestro flujo en Node-RED para que nos sea mas fácil identificarlo. Solo debemos dar clic en Flows, Rename y colocamos el nombre de nuestra preferencia.

Referencias bibliográficas

https://core.telegram.org/bots