Bot de Telegram con Java

Índice de contenidos

1. Introducción

En este tutorial vamos a crear un bot usando la API de Telegram. Esta API es pública y puede ser usada tras la obtención de un token vinculado con la cuenta de Telegram.

La API puede ser consultada de múltiples formas pero en esta ocasión vamos a usar un wrapper que facilita el desarrollo llamado TelegramBots. En la documentación de la API de Telegram se pueden encontrar más librerías para acceder a la API con distintos lenguajes.

2. Entorno

El tutorial está desarrollado usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro 15′ (2.5 GHz Intel Core i7, 16GB DDR3, 500GB Flash Storage)
  • Sistema Operativo: Mac OS Sierra 10.13.4
  • Entorno de desarrollo: IntelliJ IDEA 2018.1
  • JDK 1.8
  • Gradle 4.7
  • TelegramBots 3.6.1

3. Obtención del token del bot

Lo primero que haremos será crear un nuevo bot y obtener su token de autenticación. Para ello nos descargamos la aplicación de Telegram de aquí (Android) o aqui (iOS). Después la abriremos y nos daremos de alta con nuestro número de teléfono.

Posteriormente, hablaremos con el BotFather. Tras enviarle el comando /newbot y seguir sus instrucciones, nos creará las credenciales de nuestro nuevo bot y nos dará el token. Este token es privado y no se debe compartir.

4. Proyecto Java con Gradle

Lo siguiente que haremos será crear un nuevo proyecto gestionado con Gradle (también se puede hacer con Maven) y añadiremos la dependencia del wrapper de la API de Telegram:

Esta librería nos permitirá acceder a toda la API de Telegram de forma fácil y sin tener que preocuparnos de usarla directamente.

5. Bot eco

Ahora desarrollaremos el código de nuestro bot. Para ello vamos a hacer que responda con la misma información que le enviemos.

Lo primero será crear la clase que se encargará de gestionar las peticiones del bot. Para ello tenemos que extender la clase TelegramLongPollingBot. Esto hará que nuestro bot pregunte periódicamente por nuevas actualizaciones a Telegram. También podemos crear bots de tipo TelegramWebhookBot, y será Telegram quien nos avise de nuevas actualizaciones (en este caso usaremos Polling para simplificar).

En esta clase tenemos la lógica de nuestro bot, ahora solo tenemos que crear otra clase que será el punto de entrada a la aplicación y que registrará el bot.

6. Probamos el bot

Ahora tan solo tenemos que arrancar nuestro proyecto desde la clase Main y probar el resultado. Buscaremos nuestro bot en la aplicación de Telegram, ya sea con @nombreDelBot o desde el BotFather escribiéndole el comando /mybots>.

En la pantalla del bot pulsaremos en el botón Iniciar y ya podremos enviarle mensajes. Nuestro inteligente bot nos responderá con la misma información :).

6. Conclusiones

Este es el ejemplo más sencillo que podemos hacer usando este wrapper pero también podremos desarrollar bots más complejos como imágenes, emojis, ficheros, botones, comandos…Todo lo que la API de Telegram permita. Incluso podremos desarrollar el bot como si de una aplicación Spring Boot se tratara.

Un saludo.

Alejandro

aalmazan@autentia.com