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

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

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

В этом примере мы будем использовать API сервиса 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. Эта информация должна быть на сайте внешнего сервиса с описанием его API. Выберите этот тип в выпадающем списке «Тип запроса».

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

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

  • Вы завершаете настройку «Внешнего запроса».
    • Обязательно сохраните его настройки, кликнув на Сохранить.
    • Обязательно сохраните настройки открытого шага «Действие 1», кликнув Сохранить и закрыть.

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

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

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


Если вы не нашли ответ на свой вопрос, задайте его нам в чате внутри кабинета либо напишите на [email protected] 😃

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

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

Была ли статья полезна?

Спасибо за обратную связь!