Una de las ventajas de Telegram respecto a otras apps de mensajería es que permite crear bots, o lo que es lo mismo, programas automatizados que pueden realizar determinadas tareas e interactuar con otros usuarios. En el post de hoy vamos a ver cómo podemos crear un bot para Telegram.
Nuestra intención es hacer un bot sencillo, que no nos lleve más de 20 o 30 minutos, pero que nos sirva para entender las bases de este tipo de herramientas y a partir de ahí poder crear nuestras propias automatizaciones para Telegram. Como ejemplo crearemos un “chatbot” o bot conversacional capaz de mantener una conversación con otra persona.
¿Qué puedo hacer con un bot de Telegram?
Lo primero que tenemos que tener claro es que los bots de Telegram son aplicaciones de terceros. Es decir, Telegram cuenta con algunos bots oficiales -que podemos diferenciar gracias a la insignia azul que veremos al lado de su nombre-, pero la gran mayoría suelen ser bots externos o extraoficiales.
Eso quiere decir que pueden tener cualquier tipo de finalidad (la que decidan sus desarrolladores), aunque la mayoría se engloba en alguno de estos grupos:
- Enviar notificaciones, avisos y publicar noticias.
- Integración con otros servicios como Gmail, YouTube, IMDB, Wikipedia, etc.
- Aceptar pagos de usuarios (tiendas o servicios virtuales).
- Creación de herramientas (traductores, alertas meteorológicas, etc.)
- Desarrollo de minijuegos.
- Utilidades sociales, como conectar gente para charlar con los mismos intereses o que viven en la misma zona.
Los bots se controlan mediante solicitudes HTTPS al Bot API de Telegram, por lo que el único límite lo marca nuestra imaginación y la habilidad que tengamos para crear y gestionar el bot.
Cómo crear un bot de chat para Telegram
Como decimos al principio del post, vamos a crear un pequeño chatbot o bot de conversación cuyo objetivo será comunicarse con el usuario que quiera hablar con él. Esto nos servirá para aprender el mecanismo de funcionamiento de los bots de Telegram, que como veréis, son bastante fáciles de generar. Lo único que necesitaremos será una cuenta de Telegram y una cuenta de Google.
Nuestro chatbot de ejemplo lo utilizaremos para ofrecer información sobre nuestro blog (elandroidefeliz.com). Antes de empezar a crear tu bot piensa muy bien cuál quieres que sea su finalidad. ¡Si te arrepientes a medio camino será mucho más difícil dar marcha atrás!
Paso #1: Consigue un token de acceso para la API
Ahora que ya tenemos claro qué es lo que va a hacer nuestro bot procederemos a darlo de alta en Telegram.
- Entra en Telegram y busca la cuenta “BotFather”. Esta es una herramienta oficial de Telegram que se utiliza para generar nuevos bots (si te fijas verás que tiene una insignia azul junto a su nombre).
- Pulsa sobre START.
- Automáticamente se desplegará un listado con todos los comandos disponibles. Selecciona “/newbot” para crear un nuevo bot.
- Elige un nombre para tu bot.
- A continuación, elige un nombre de usuario para el bot. Ten en cuenta que el nombre de usuario debe terminar con la palabra “bot”.
¡Conseguido, ya tienes bot! BotFather te mostrará un enlace con el formato “t.me/xxx” (donde xxx corresponde al nombre de usuario del bot). Pulsando sobre ese enlace podrás acceder al bot e interactuar con él.
Junto al enlace también se adjunta un token de acceso a la HTTP API de Telegram. Copia el token y guárdalo en un lugar seguro.
Nota: Utiliza los comandos de la sección «Edit Bots» de BotFather para establecer una imagen de perfil, un texto de descripción y añadir otras opciones de personalización.
Paso #2: Crea el flujo de diálogo del bot
Ahora que ya hemos creado el bot vamos a “hacerlo un poco más listo” configurando la forma en la que se relacionará con las personas. Para ello usaremos DialogFlow, una herramienta de Google que nos servirá para educar a nuestro pequeño bot recién nacido.
- Entra en DialogFlow e inicia sesión con tu cuenta de Google.
- En la pantalla de bienvenido, pulsa sobre “Create Agent” para crear un agente conversacional.
- Dale un nombre al bot, selecciona el idioma “Spanish” y la zona horaria correcta para tu región.
- Pulsa sobre el botón azul “Create” que verás en el margen superior derecho de la pantalla.
- En el menú de la izquierda ve a “Integrations”, pulsa sobre la opción de Telegram e introduce ahí el token que has conseguido en el paso #1.
¡Ahora tu bot de Telegram está conectado con DialogFlow! Si entras en Telegram y abres un chat con tu bot verás que te da la bienvenida y puedes hacerle alguna que otra pregunta. Enseguida comprobarás que el bot todavía no entiende gran cosa de lo que le dices.
Paso #3: Entrena al bot
Para que el bot sea más listo tenemos que entrenarlo. Esto lo podemos hacer desde el menú de “Intents” que veremos en la izquierda de la pantalla. Los “Intents” son grupos de preguntas sobre un mismo tema.
- Desde “Intents” pulsa sobre la opción de crear un nuevo intent.
- Dale un nombre al intent, como por ejemplo, “¿Quién eres?”.
- Ve a “Training phrases -> Add training phrases” para añadir frases de entrenamiento.
- Las frases de entrenamiento son las diferentes variantes de una frase para una misma pregunta. Por ejemplo, “¿Cómo te llamas?”, “¿Quién eres?” o “¿Cuál es tu nombre?”. Añade todas las posibles frases o preguntas que se te ocurran.
- A continuación baja hasta el apartado “Responses” y elabora la respuesta deseada para todas esas preguntas de entrenamiento que acabas de registrar.
- Pulsa sobre el botón de “Save” para guardar los cambios.
Si volvemos a nuestro bot de Telegram y le preguntamos quién es, veremos que ahora sí que nos responde con un texto más elaborado que al principio. Concretamente, con la respuesta que hemos preparado en el “Intent” que acabamos de registrar.
A partir de aquí todo es cuestión de que entrenemos a nuestro bot para que aprenda a responder a muchas más preguntas. De esta manera, por ejemplo, podemos hacer un bot que responda a preguntas de matemáticas, de química, de futbol, de pesca o cualquier otra cosa.
Si todo esto nos parece mucho trabajo DialogFlow también cuenta con algunos agentes ya entrenados que podemos cargar directamente. Para ello solo tenemos que ir a “Prebuilt Agents” en el menú de la izquierda y pulsar sobre “IMPORT” en el agente que nos interese. Hay 4 disponibles: Small Talk (agente para charlar), Support (agente de soporte), Translate (agente traductor) y Weather (agente meteorológico).
Como veis crear bots para Telegram no es muy complicado. Tan solo necesitamos un poco de dedicación para lograr resultados bastante interesantes. ¿Y vosotros qué decís? ¿Qué tipo de bot os gustaría crear para Telegram?
Buen artículo, da conocimiento para empezar. Yo necesito crear un bot que reenvie los mensajes de una canal a otro, es decir, que apenas llegue un mensaje al canal 1, y en lo que el bot vea el mensaje, lo reenvie automáticamente al canal 2. Veré cómo lo hago.