Seguro que muchos conocéis Telegram, esa aplicación de mensajería instantánea que intenta hacerle la competencia a WhatsApp, aunque de momento, todo sea dicho, no le llega ni a la suela de los zapatos en cuanto a popularidad, y esto a pesar de tener algunas características bastante superiores. Pero bueno, la historia de la tecnología está llena de ejemplos en los que un producto técnicamente superior se ve desbancado por otro técnicamente inferior, y es que no sólo los detalles técnicos pesan. Sin embargo, leo que Telegram va creciendo gradualmente, así que espero que algún día la mayoría de mis contactos se hayan mudado de WhatsApp a Telegram. Mientras tanto, a seguir con las dos aplicaciones
No quiero entrar en los detalles técnicos ahora, y la evangelización sólo la hago los domingos, así que mejor os remito a esta entrada en hipertextual.com donde explican razonablemente bien las diferencias más importantes entre ambas aplicaciones. Lectura muy recomendable.
http://hipertextual.com/2015/06/telegram-vs-whastapp
¿Ya la habéis leído? Bien. Ahora, vamos al turrón.
1. Los bots de Telegram
El 24 de junio de este año Telegram lanzó una característica que no he podido investigar hasta hace tan solo unos días (muy por encima, eso sí, aunque suficiente para lo que yo quiero hacer): los bots. [
https://telegram.org/blog/bot-revolution]
Fig1. Los bots de telegram: una innovación muy interesante
Estos bots son cuentas de Telegram detrás de las cuáles no hay una persona, sino un programa, y sin necesidad de un número de teléfono asociado. Y son ideales para muchas cosas. Entre ellas, para que tus programas te puedan mandar mensajes al móvil, por ejemplo, aunque según parece esta es la menor de las utilidades que tienen. Pero es la que hoy me interesa.
El proceso básicamente consiste en tres pasos: 1) crear el bot, 2) chatear (unirse) a él todos aquellos que quieran recibir los mensajes y 3) enviar y recibir mensajes como si no hubiera un mañana
Ok, pues manos a la obra.
2. Crear un bot
Para esto se utiliza el BotFather, el
padrino-de-los-bots (confío en que no habrá que explicar el juego de palabras. Si no, dejad de leer y sacad de la biblioteca la serie de películas de "El Padrino").
Simplemente, hay que entrar en la dirección [
https://telegram.me/botfather]
y seguir las instrucciones que nos va dando.
Veremos un mensaje tal que así
Fig. 2. El padrino nos recibe en su casa
Podemos interactuar con el BotFather "chateando" directamente, teniendo en cuenta que las órdenes comienzan con una barra /, o bien podemos usar el botón que os he señalado con una flecha en la figura 2.
Creamos el bot con
/newbot y le damos un nombre
Fig. 3. El bot recién creado, de nombre "Cosicas"
A continuación le damos un nombre de usuario, que termine en "bot". Esto nos devolverá un
token que necesitaremos pasar en las invocaciones al bot, para poder enviar mensajes. Lo copiamos y lo guardamos en un lugar seguro. Lo necesitaremos un poco más adelante.
Fig. 4. Al darle el nombre de usuario recibimos un token
El bot posee una serie de métodos que podemos invocar a través de la URL
https://api.telegram.org/bot<token>/METHOD_NAME
Donde METHOD_NAME puede ser uno de los métodos que podéis consultar en la referencia de la API (aquí [
https://core.telegram.org/bots/api]).
Por ejemplo, invocando al método getMe podemos obtener información básica del bot, entre ella el ID que lo identifica:
https://api.telegram.org/bot<token>/getMe
En mi caso, esto:
Fig. 5. Uso del método getMe para extraer el ID de nuestro bot
3. Chatear con el bot
A continuación debemos unirnos a la "conversación" con nuestro bot. Para esto, pinchamos en el enlace que nos ha dicho el BotFather en la figura 4. Es un enlace del tipo
telegram.me/CosicasBot (que a su vez redirige a
https://web.telegram.org/#/im?p=@CosicasBot). Allí veremos un botón que nos servirá para iniciar nuestra conversación con el bot.
Fig. 6. Accediendo a la "conversación" con el bot
Pulsamos en INICIAR y
Fig. 7. Ya estamos conectados a nuestro bot. Listos para enviar mensajes.
Al iniciar el chat con el bot, ya podemos obtener nuestro identificador para que nuestro programa pueda enviarnos mensajes. El
chat_id identifica a nuestro usuario en Telegram, y el bot necesita saber este
chat_id para poder enviarnos mensajes. En una reciente actualización he leído que también se puede hacer con el nombre del usuario. Yo voy a explicarlo con el
chat_id.
¿Y cómo obtenemos ese chat_id? Un pequeño truco que he visto es invocar al método getUpdates de nuestro bot, tal y como describimos en el apartado anterior. Eso debería producir una respuesta en formato JSON que, entre otras cosas, lleva nuestro chat_id. Es decir, abrimos un navegador y tecleamos la URL siguiente:
https://api.telegram.org/bot<token>/getUpdates
Y deberíamos ver algo así:
Fig. 8. Forma "chapucerilla" de obtener el chat_id
En el recuadro rojo tenéis el chat_id.
4. Enviar un mensaje
Bueno, pues parece que ya lo tenemos todo. Ahora ya podemos crear una página PHP sencilla que envíe mensajes al bot. Sería algo tan simple como:
Fig. 9. Código para enviar un mensaje al bot
Por supuesto, no es necesario que sea PHP, puede estar escrita en cualquier lenguaje. Lo necesario es simplemente invocar la URL que se construye en la línea 15.
Por último, abro ese fichero PHP en mi servidor web y me voy al Telegram en mi móvil, et voilà!
Fig. 10. Mi PHP enviándome mensajes al móvil, ¡qué tierno!
Bueno, pues ahí tenéis una forma rápida de enviar mensajes al móvil vía Telegram desde vuestros programas. Pero ojo a los bots, que parece que tienen un gran potencial mucho más allá de esto.
Por cierto, el bot que he usado de ejemplo voy a cargármelo ahora mismo, que no quiero que nadie empiece a mandarme basura. Quien quiera probarlo, que se cree el suyo propio.
Fig. 11. Borrando el bot de este ejemplo
Bueno, seguramente habré cometido varios errores en este artículo, pero acabo de empezar a pelearme con los bots (tampoco creo que les dedique mucho más, ya tengo lo que quería) y seguro que algunas cosas las iré aprendiendo mejor en los próximos días.
Y por hoy, basta de programación.