HTTP-запросы
Last updated
Last updated
Интеграция "HTTP-запрос" позволяет отправлять произвольные HTTP-запросы на сторонние сервера. Это позволяет интегрировать Smartbot с вашим сайтом, CRM или интернет-магазином.
Получение информации:
Чат-бот может отправлять запросы на внешние API (интерфейсы программирования приложений), чтобы получить актуальную информацию. Например, бот может запрашивать погоду, курсы валют или данные о товарах из интернет-магазина.
Отправка данных:
Если пользователь вводит данные (например, заполняет форму или оформляет заказ), бот может отправить эти данные на сервер для обработки. Это может быть полезно, например, для регистрации пользователей или оформления заказов.
Интеграция с другими сервисами:
HTTP-запросы позволяют вашему боту взаимодействовать с различными внешними сервисами, такими как CRM-системы, базы данных или платежные системы. Это расширяет функциональность бота и позволяет ему выполнять более сложные задачи.
Чтобы настроить HTTP-запрос, создадим соответствующий блок на экране сценария. Сделать это можно через правое дополнительное меню (раздел "Интеграции"), или щелчком правой кнопкой мыши на свободном участке.
Новый блок появится на экране, и справа автоматически откроется его меню.
Если вы интегрируетесь с существующим сервисом, то всю необходимую информацию для настройки этого шага вы можете найти в официальной документации к API этого сервиса, либо свяжитесь с разработчиками вашего сайта.
Тип запроса (http-метод): GET/POST/...
URL-адрес: страница (endpoint), к которой должен обратиться Smartbot, тут же можно указать query-параметры запроса, например: https://some.site/some_endpoint?key1=value1&key2=value2
Тело запроса: полезная нагрузка, может быть задана в трёх разных форматах:
Форма: тело запроса представляет собой форму (список пар ключ-значение), запрос будет отправляться с заголовком
Content-Type: application/x-www-form-urlencoded
(если явно не задано другое значение этого заголовка)
JSON: тело запроса является JSON-документом. Запрос будет отправляться с заголовком
Content-Type: application/json
(если явно не задано другое значение этого заголовка)
Текст: данные отправляются as-is, никаких дополнительных заголовков не добавляется
Заголовки: дополнительная информация, например, авторизационные данные: Authorization: Bearer [token]
Ниже, после настройки параметров запроса, задаются переменные, в которые будет сохранён ответ сервера:
Тело ответа: данные, которые прислал сервер в ответ. Если Content-Type
равенapplication/json
, то типом этой переменной будет Словарь, иначе Строка
Статус ответа: число, например 200, 400 или 500 вы можете проверять статус ответа, чтобы узнать завершился ли запрос успешно
Заголовки ответа: сервер также может прислать какую-то дополнительную информацию в виде заголовков, они сохранятся в переменную типа Словарь
Метод GET используется для получения данных с сервера. Запросы, отправленные с помощью GET, обычно не изменяют состояние сервера и могут быть кэшированы.
Получение информации о пользователе или чате.
Запрос данных для отображения в интерфейсе бота.
Пример использования: запрос на получение информации о пользователе через API Telegram.
Параметры передаются в строке URL, например:
Бывают случаи, когда при формировании тела запроса встречаются проблемы.
Это происходит чаще всего, когда тело запроса достаточно сложное, имеет сложные и/или вложенные структуры, например:
Чтобы проблем не возникало, можно использовать вариант передачи тела запроса при помощи функции to_json.
Для этого нужно:
Создать блоки “Выполнить SmartQuery” и “Отправить HTTP-запрос”
В блоке “Выполнить SmartQuery” записать все тело запроса в переменную (например, %request_body%). Она может быть как временной, так и пользовательской/глобальной.
В блоке “Отправить HTTP-запрос” выбрать тип тела запроса “Текст” и в теле написать выражение SmartQuery (обязательно в двойных фигурных скобках):
В блоке “Отправить HTTP-запрос” переключиться на “Заголовки” и добавить заголовок “Content-Type” со значением “application/json” (это нужно, чтобы сервер понимал, что бот отправляет HTTP-запрос с телом в формате JSON):
Желаем вам удачи в создании мощных и многофункциональных чат-ботов с помощью HTTP-запросов!