Integración con APIs de terceros
Puedes crear bots que interactúen con otros servicios a través de API. Por ejemplo, los bots pueden hacer solicitudes para comprobar la disponibilidad de una fecha específica o para encontrar un producto en una tienda en línea.
Cómo interactuar con API de terceros usando Dadata como ejemplo
Tomemos como ejemplo una API de sugerencias de direcciones: https://dadata.ru/api/suggest/address/ el enlace será diferente
Lee atentamente la documentación de las API de terceros.
¡Ten en cuenta! Las API de terceros requieren las direcciones IP desde las que se enviarán las solicitudes: 158.160.49.208 – sitio web.
En el campo "Request URL", introduce https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address.
En la "Request header" campo, introduce el encabezado en formato JSON: {"Content-Type": "application/json", "Accept": "application/json", "Authorization": "Token " + token}.
En la "JSON parameters" campo, introduce la propia solicitud: {"query": "#{CurrencyType}"}.
Para obtener el resultado de la solicitud, completa el "Saved values" campo.
Un ejemplo de la solicitud se muestra en la ilustración de abajo.

Cómo guardar valores de variables
Puede que no quede completamente claro la primera vez; realmente necesitas probarlo tú mismo.
Primero, introduce #{custom_answer} en el campo "Answer". (La variable #{custom_answer} contiene la respuesta recibida del servidor especificado en el campo "Response URL".)
Ejecuta el bloque de solicitud para enviar la solicitud y obtener la respuesta. La respuesta recibida debe analizarse, y debes configurar qué variables extraer de ella. Para ello, usa el campo "Saved Values".
Repasemos el ejemplo descrito arriba.
La mejor manera de entender cómo acceder a datos en JSON es con un ejemplo. Como resultado de nuestra solicitud, la respuesta recibida en #{custom_answer} se ve así:
{\r"suggestions": [\r{\r"value": "US Dollar",\r"unrestricted_value": "US Dollar",\r"data": {\r"code": "840",\r"strcode": "USD",\r"name": "US Dollar",\r"country": "United States"\r}\r}\r]\r}
En el campo "Saved values", introduce VALUE -> VARIABLE:
suggestions|0|value->CurrencyType;
suggestions|0|data|code->CurrencyDigCode;
suggestions|0|data|strcode->CurrencyStrCode;
suggestions|0|data|country->CurrencyCountry
suggestions - clave para el array [{"value": "US Dollar", "unrestricted_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}]
suggestions|0 - clave para el primer elemento del array {"value": "US Dollar", "unrestricted_value": "US Dollar", "data": {"code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States"}}
suggestions|0|value - clave para el valor "US Dollar"
La clave más larga en este JSON:
suggestions|0|data|strcode - clave para el valor "USD"
Las claves se separan con una barra vertical (|). Si un elemento JSON es un array, accedes a sus elementos por índice, comenzando desde 0, y esto también se escribe usando una barra vertical.
Debes repetir toda la anidación. Para mayor comodidad, puedes visualizar el JSON usando una aplicación visor de JSON.
El nivel de anidación se separa con una barra vertical. Es decir, debes enumerar todas las claves para llegar al valor, separándolas con una barra vertical.
Si el JSON contiene un array, usa el índice del elemento en lugar de una clave, comenzando desde cero.
Separa las expresiones para obtener nuestras variables con un punto y coma ;.
Cada expresión consta de la ruta a los datos en la respuesta y del nombre de la variable donde guardarla, separados por ->.
La consulta de búsqueda representa la ruta en el JSON hacia el valor requerido.
Desarrollo de API para bots
El bot admite solicitudes GET y POST, que son los principales tipos utilizados en la mayoría de las API públicas.
GET es una solicitud que ocurre cuando haces clic en un enlace o abres una URL en un navegador. Los parámetros en esta solicitud se pasan en la URL.
Sintaxis para pasar parámetros: después de la URL, coloca un signo de interrogación ?, luego separa cada parámetro con un ampersand &. Cada parámetro consiste en un nombre seguido de = y su valor.
Ejemplo de una URL con un parámetro:

Aquí, se pasa un único parámetro q con el valor "good music". %20 representa un espacio.
Al trabajar con el generador, puedes usar simplemente un espacio: el bot lo reemplazará automáticamente.
POST es una solicitud que normalmente se envía al enviar un formulario en un sitio web. Los parámetros se envían en el cuerpo de la solicitud. Aunque también pueden enviarse en la URL como en las solicitudes GET, esto es poco común. Los parámetros en el cuerpo pueden estar en formato JSON o como pares clave-valor. Los formularios suelen enviar pares clave-valor, mientras que las API suelen usar JSON.
Encabezado de la solicitud - puedes añadir un encabezado a cada solicitud. Lo más habitual es que especifique el formato de los datos y las claves de acceso. Normalmente, este campo se deja vacío, pero en casos poco frecuentes, necesitas incluir un token de API o un tipo de solicitud, por ejemplo, "Content-Type": "application/json".
JSON (Notación de Objetos de JavaScript, normalmente pronunciado /ˈdʒeɪsən/ JAY-sən) es un formato de intercambio de datos basado en texto y en JavaScript. Como muchos otros formatos de texto, JSON es fácil de leer para las personas. Para trabajar con API en el bot, necesitas entender este formato, ya que subyace a todas las interacciones.
Antes de continuar, lee los siguientes artículos:
https://www.json.org/json-ru.html https://developer.mozilla.org/ru/docs/Learn/JavaScript/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B/JSON
Además, intenta crear tu propio archivo JSON en este sitio web:
Práctica
Las solicitudes pueden ejecutarse mediante bloques y condiciones. Las solicitudes condicionales están diseñadas para comprobar si un diálogo puede seguir una determinada rama en el sitio. En este caso, la solicitud se envía cada vez que se evalúa la condición de la rama. Las solicitudes en bloques, por otro lado, se ejecutan solo cuando el diálogo entra en ese estado.
Antes de crear una solicitud, debes elegir su tipo:

POST-data y POST-JSON difieren en cómo se envían los parámetros, como se mencionó antes (ya sea en formato JSON o como pares clave-valor). Si eliges JSON, los parámetros solo pueden enviarse en el cuerpo de la solicitud. Aparecerá un campo adicional para los parámetros JSON de POST.
¡Importante! Los parámetros deben escribirse solo en formato JSON, ya que el bot trabaja exclusivamente con él. Ya has practicado escribir JSON.
La respuesta del servidor puede analizarse y guardarse en variables.
Solo puedes analizar una respuesta si está en formato JSON.
Las variables guardadas se registran en el último formulario sin completar. Si el formulario se envía a través de un bloque rojo, las variables se descartan. Por lo tanto, si necesitas guardar estos datos, pasa las variables al sistema CRM mediante un bloque amarillo.
También puedes ver lo que el bot ha registrado en las variables en la sección "Leads".

Pasar variables no como una cadena
De forma predeterminada, los valores de las variables deben ser cadenas en el formato "#{}", pero en este caso, la variable se envía como una cadena. Para pasar una variable como número, debes desactivar la verificación del formato de parámetros en la configuración del proyecto:

Entonces puedes usar simplemente el nombre de la variable, por ejemplo: {"key": #{variable_name}}, donde variable_name es la propia variable, sin comillas alrededor.
Se recomienda volver a activar la verificación del formato después de configurar los parámetros.
Última actualización