Простой сценарий использования действия Внешний запрос

Как настроить действие "Внешний запрос" для отправки запроса, приема ответа, и дальнейшего использования полученных данных в боте

Общее описание действия внешний запрос можно найти тут: ссылка

Видео обзор данного сценария можно посмотреть тут: ссылка


С помощью действия Вншений запрос можно отправлять или запрашивать информацию у внешних сервисов, а после этого получать от них ответ и записывать его в пользовательские поля подписчиков.

Ниже рассмотрим самый простой сценарий использования действия Внешний запрос. Данный сценарий далек от реального использования, но зато он показывает все этапы настройки и весь функционал Внешнего запроса.

Описание сценария и его настройка:

В этом примере мы будем использовать АПИ сервиса swapi.dev. Данный сервис хранит в себе информацию о серии фильмов "Звездные войны": названия фильмов, персонажи и их характеристики, описания транспортных средств, планет, рас и т.д.

Другими словами, этот сервис - википедия по вселенной "Звездные войны"

Основные этапы сценария:

  • Подписчик попадает в бота
  • Бот отправляет запрос в сервис swapi.dev с id подписчика
  • Сервис возвращает описание персонажа, у которого id такой-же как у подписчика
  • Бот записывает имя персонажа в пользовательское поле и выводит это значение подписчику

Настройка бота

Собираем простую цепочку бота:

  • Добавляем блок "Сообщение 1"
    • Пишем приветственный текст
    • Добавляем кнопку для перехода к следующему шагу
  • Добавляем блок "Сообщение 2"
    • Выводим пользователю его id
    • По этому id внешний сервис будет находить персонажа в своей базе

  • Добавляем блок "Действие 1"
    • В этом блоке выбираем действие "Внешний запрос" (настройки внешнего запроса рассмотрим ниже"

  • Добавляем блок "Сообщение 3"
    • Выводим пользовательское поле, в которое будем записывать имя полученного от внешнего сервиса персонажа
  • Соединяем все блоки и получаем вот такого небольшого бота:

Настройка Внешнего запроса

  • После добавления действия Внешний запрос в блоке "Действие 1" кликаем на "карандашик", чтобы открыть окно редактирования Внешнего запроса. Все дальнейшие настройки будут проходить в открывшемся окне

  • Вводим URL-адрес запроса
    • В описании сервиса swapi.dev выбираем метод, который будет нам возвращать характеристики персонажа: https://swapi.dev/api/people/1/
    • Копируем и вставляем адрес в поле "URL-адрес"
    • В этом адресе "1" это id персонажа. Вместо этого значения вставляем макрос, который будет автоматически подставлять внутренний id подписчика. Для этого кликаем на иконку "<>" в поле URL-адрес и выбираем нужный нам макрос
    • Итоговая ссылка: https://swapi.dev/api/people/{%bh_user_id%}
  • Выбираем тип запроса
    • Тип данного запроса - GET (эта информация должна быть на сайте внешнего сервиса с описанием его АПИ). Выбираем этот тип в выпадающем списке "Тип запроса"

  • В данном методе не нужно заполнять Заголовки или Тело, поэтому переходим к тестированию запроса
    • Чтобы перейти к тестированию запроса и убедиться, что всё работает корректно, и сервис возвращает корректный ответ, переходим на вкладку "Ответ" или кликаем на кнопку "Протестировать запрос"
    • В открывшейся вкладке видим тестовые данные для используемых макросов. Значение по умолчанию: 10. При необходимости его можно изменить.
    • Чтобы запустить тестирование, нажимаем на кнопку "Отправить запрос"
    • В ответ нам приходит статус "200 ОК", значит внешний сервис получил наш запрос и успешно вернул на ответ
    • В правой части окна в разделе "Тело ответа" можно посмотреть, что мы получили в ответ на наш запрос
    • Нас интересует значение поля "name". Именно значение этого поля мы будем автоматически записывать в пользовательское поле подписчика.

  • Настраиваем сопоставление ответов
    • Сопоставление ответов позволяет настроить логику, которая из полученного тела ответа будет брать значение нужного поля и записывать его в указанное пользовательское поле подписчика
    • Для этого нужно указать путь, по которому требуется находить нужное поле в теле ответа (подробнее читайте тут: ссылка), и само пользовательское поле, в которое нужно сохранять значение
    • Для этого добавляем сопосталвение и заполняем появившиеся поля
    • Значение JSON Path "$.name" вернет значение поля "name" из тела полученного ответа. В примере из тестирования значение было "Obi-Wan Kenobi"

  • На этом настройка Внешнего запроса завершена
    • Обязательно сохраняем его настройки кликом по кнопке "Сохранить"
    • Обязательно сохраняем настройки открытого шага "Действие 1" кликом по кнопке "Сохранить и закрыть"

Тестирование бота с внешним запросом

  • Запускаем тестирование бота
  • В итоге получаем вот такую цепочку сообщений:


Я Дарт Вейдер, а кто Вы?🙂


Общее описание действия внешний запрос можно найти тут: ссылка


Если вы не нашли ответ на свой вопрос, задайте его нам в чате внутри кабинета либо напишите на hello@bothelp.io 😃

Получите 14 дней полного функционала платформы для создания рассылок, автоворонок и чат-ботов BotHelp:

Получить 14 дней бесплатно 

👆 На этом пока всё