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

Ya en la parte anterior vimos el uso de InlineQueryResultArticle someramente en un ejemplo usando solo los parámetros necesarios, ahora veremos los parámetros soportados y que representa cada uno (los requeridos en rojo).

  • type es el tipo de resultado, en este caso el valor debe ser article.
  • id es el identificador único para cada ítem.
  • title es el título del ítem, el que aparecerá en la lista.
  • input_message_content es una serie de parámetros que contiene el mensaje a enviar llamado InputMessageContent, hay 4 tipos de estos los cuales son:
    • InputTextMessageContent es el contenido de un mensaje tipo texto y tiene los siguientes parámetros:
      • message_text el cuerpo del mensaje, puede contener hasta 4096 caracteres.
      • parse_mode define si el mensaje se enviará como html o markdown, si no se coloca, el mensaje se tomará como texto plano.
      • disable_web_page_preview por defecto viene como false, si se colocá como true no se mostrará la previsualización de la web si se coloca una URL.
    • InputLocationMessageContent representa una localización, sus parámetros son:
      • latitude la latitud de la posición en grados.
      • longitude la longitud de la localización en grados.
    • InputVenueMessageContent envía el sitio especificado, tiene los siguientes parámetros:
      • latitude la latitud de la posición en grados.
      • longitude la longitud de la localización en grados.
      • title es el título del ítem, el que aparecerá en la lista.
      • address la dirección del sitio.
      • foursquare_id la id de Foursquare, si se conoce.
    • InputContactMessageContent esta sirve para enviar un contacto, sus parámetros son:
      • phone_number número de teléfono del contacto.
      • first_name nombre del contacto.
      • last_name apellido del contacto.
  • reply_markup este es un array que muestra uno o varios botones debajo del mensaje, luego daremos más detalles sobre este parámetro.
  • url URL del resultado, si aplica.
  • si no quieres que se muestre en el mensaje, se coloca true.
  • description descripción corta del result.
  • URL de una imagen en miniatura para el resultado.
  • thumb_width ancho de la miniatura de la imagen.
  • thumb_height alto de la miniatura de la imagen.

Haremos varias pruebas con los 4 diferentes tipos de respuestas, la primera será con InputTextMessageContent donde haremos una busqueda usando la api pública de OpenLibra, el código es el siguiente:

Lo cual nos generará un ejemplo como el que sigue:

Ejemplo de uso del inline bot para busqueda en OpenLibra

El siguiente ejemplo será con InputLocationMessageContent con el cual usaremos la API Nominatim de OpenStreetMap (gracias a @kevindels por la idea).

Con esto se produce algo como lo siguiente:

Ejemplo de uso de bot inline para obtener ubicación

Ahora vamos con InputVenueMessageContent, para este ejemplo se me acaban las APIs públicas, así que usaré la misma que la anterior agregando en los datos adicionales lo mismo que ya me devuelve:

Con este código se verá de la siguiente forma:

Ejemplo de uso de bot inline para buscar dirección

Finalmente toca InputContactMessageContent, para este ejemplo haremos algo de webscraping a las Páginas Amarillas Cantv, para buscar los contactos de la busqueda que hagamos:

dando lo siguiente como resultado:

Ejemplo de uso de bot inline para busqueda de contacto

Esto es todo por ahora, en próximas entradas veremos otros tipos de respuestas, cualquier duda no duden en comentar.

Deja un comentario

A %d blogueros les gusta esto: