Desarrollo de bots para Telegram: modo inline (parte 1)

Una de las funciones más interesantes de los bots de telegram es el modo inline, el cual permite realizar consulta de manera más directa que los métodos descritos anteriormente, la forma de usarlo es sencillo, simplemente se coloca el nombre de usuario del bot, seguido de un espacio y la consulta que se quiere realizar, el bot mostrará na lista con los resultados y uno simplemente escoge el que le interesa.

Ejemplo de uso del bot @imdb

Para lograr esto con nuestro bot primero debemos activar este modo con @Botfather, primero escribimos el comando /setinline, el bot nos pedirá la frase que queremos que aparezca cuando lo llamemos y finalmente se activará, si lo probamos en la ventana de conversación del bot veremos que ya aparece el mensaje que colocamos.

Ejemplo de configuración del modo inline

Ahora veamos como implementar esto en código, lo primero que debemos hacer es poner al bot a escuchar constantemente.

Notarán que en la configuración de curl hay dos cambios respecto al artículo anterior, en primer lugar cambiamos el Content-Type a application/json, y estoy enviando los parametros ya no como un array sino como un json, esto es debido a que por alguna razón, no se puede enviar como parámetro un array dentro de otro, así que lo envío como json

Mientras no reciba nada, devolverá un JSON con result vacío, de la siguiente forma.

Al momento de comenzar a escribir alguna consulta ya el bot comenzará a recibirlas.

Mensaje enviado al bot como inline query

Los datos más importantes que podemos sacar son:

  • update_id
  • inline_query->id
  • inline_query->query

Ya con esto podemos enviar un ‘InlineQueryResult‘ al usuario, estos son los arrays de los resultados que se envían al usuario, el listado de los results que se pueden enviar son los siguientes:

En esta primera parte haremos un ejemplo usando el InlineQueryResult más simple, el ‘InlineQueryResultArticle‘, generaremos un array estático que enviaremos sin importar el query que hagamos, el código completo sería este:

En este ejemplo le enviamos un listado con tres ítemes donde el usuario deberá escoger uno.

Ejemplo de un listado de artículos en una búsqueda inline

POr ahora lo dejaremos hasta aquí, en una próxima entrada mostraré como podemos hacer unas búsquedas más dinámicas además de probar este método más a fondo y otros métodos del listado.

Deja un comentario

A %d blogueros les gusta esto: