Puedes crear bots que interactúen con otros servicios a través de APIs. Por ejemplo, los bots pueden hacer solicitudes para verificar disponibilidad en una fecha específica o buscar un producto en una tienda en línea.
Cómo interactuar con APIs de terceros usando Dadata como ejemplo
Tomemos como ejemplo una API de sugerencias de direcciones: https://dadata.ru/api/suggest/address/ la url será diferente
Lee atentamente la documentación de las APIs de terceros.
¡Ten en cuenta! Las APIs de terceros requieren las direcciones IP desde las que se enviarán las solicitudes: 158.160.49.208 – sitio web.
En el campo "URL de solicitud", ingresa https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address.
En el campo "Encabezado de solicitud", ingresa el encabezado en formato JSON: {"Content-Type": "application/json", "Accept": "application/json", "Authorization": "Token " + token}.
En el campo "Parámetros JSON", ingresa la solicitud en sí: {"query": "#{CurrencyType}"}.
Para obtener el resultado de la solicitud, completa el campo "Valores guardados".
Un ejemplo de la solicitud se muestra en la siguiente ilustración.
Cómo guardar valores desde variables
Puede que no quede completamente claro la primera vez; realmente necesitas probarlo tú mismo.
Primero, ingresa #{custom_answer} en el campo "Respuesta". (La variable #{custom_answer} contiene la respuesta recibida del servidor especificado en el campo "URL de respuesta").
Ejecuta el bloque de solicitud para enviar la solicitud y obtener la respuesta. La respuesta recibida debe ser analizada, y debes configurar qué variables extraer de ella. Para esto, usa el campo "Valores guardados".
Repasemos el ejemplo descrito anteriormente.
La mejor manera de entender cómo acceder a los datos en JSON es mediante un ejemplo. Como resultado de nuestra solicitud, la respuesta recibida en #{custom_answer} se ve así:
{ "suggestions": [ { "value": "US Dollar", "unrestricted_value": "US Dollar", "data": { "code": "840", "strcode": "USD", "name": "US Dollar", "country": "United States" } } ] }
En el campo "Valores guardados", ingresa VALOR -> VARIABLE:
suggestions|0|value->CurrencyType;
suggestions|0|data|code->CurrencyDigCode;
suggestions|0|data|strcode->CurrencyStrCode;
suggestions|0|data|country->CurrencyCountry
suggestions - clave para el arreglo [{"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 arreglo {"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 arreglo, accedes a sus elementos por índice, comenzando desde 0, y esto también se escribe usando una barra vertical.
Debes repetir todo el anidamiento. Para mayor comodidad, puedes visualizar el JSON usando una aplicación de visualización JSON.
El nivel de anidamiento se separa con una barra vertical. Es decir, debes listar todas las claves para llegar al valor, separándolas con una barra vertical.
Si el JSON contiene un arreglo, 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 consiste en la ruta a los datos en la respuesta y el nombre de la variable para guardarlos, separados por ->.
La consulta de búsqueda representa la ruta en el JSON hasta el valor requerido.
Desarrollo de API para bots
El bot admite solicitudes GET y POST, que son los tipos principales utilizados en la mayoría de las APIs 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 solo parámetro q con el valor "good music". %20 representa un espacio.
Al trabajar con el constructor, puedes usar simplemente un espacio; el bot lo reemplazará automáticamente.
POST es una solicitud que se envía con mayor frecuencia al enviar un formulario en un sitio web. Los parámetros se envían en el cuerpo de la solicitud. Aunque también se pueden enviar en la URL como en las solicitudes GET, esto no es 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 APIs suelen usar JSON.
Encabezado de solicitud - puedes agregar un encabezado a cada solicitud. La mayoría de las veces, especifica el formato de datos y las claves de acceso. Normalmente, este campo se deja vacío, pero en casos raros, necesitas incluir un token de API o un tipo de solicitud, por ejemplo, "Content-Type": "application/json".
JSON (JavaScript Object Notation, generalmente pronunciado /ˈdʒeɪsən/ JAY-sən) es un formato de intercambio de datos basado en texto, basado en JavaScript. Como muchos otros formatos de texto, JSON es fácil de leer para los humanos. Para trabajar con APIs 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 verificar si un diálogo puede seguir una rama determinada 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 se diferencian en cómo se envían los parámetros, como se mencionó anteriormente (en formato JSON o como pares clave-valor). Si eliges JSON, los parámetros solo se pueden enviar en el cuerpo de la solicitud. Aparecerá un campo adicional para los parámetros JSON 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 se puede analizar y guardar 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 a través de 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 cadena
Por defecto, 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 deshabilitar la verificación del formato de parámetros en la configuración del proyecto:

Luego puedes simplemente usar el nombre de la variable, por ejemplo: {"key": #{variable_name}}, donde variable_name es la variable en sí, sin comillas circundantes.
Se recomienda volver a habilitar la verificación del formato después de configurar los parámetros.