19. Для разработчиков: Внешние запросы

Как добавить внешние переменные

  1. Выберите нужное сообщение и нажмите кнопку “Добавить переменную“.

2. Перейдите в раздел “Общие“.

3. Описание переменных

  • “Альтернативное сообщение“ - добавление дополнительного альтернативного варианта текста внутри одного сообщения.

  • “Http-запрос“ - запрос к внешним системам.

  • “Условие“ - условия действия в зависимости от указанной логики. Работает как отдельно, так и в связке с http-запросами.

  • “Ответы“ - добавления отображения кнопок в сообщение.

  • “Выход“ - закрытие сессии бота.

Http-запросы

  • Первая строка - отображение запроса

При нажатии на нее, открывается форма редактирования самого запроса:

Типы запроса

  • Get

  • Post

  • Update

  • Delite

Параметры запроса

“Ссылка“ - ссылка запроса

Пример: https://www.cbr-xml-daily.ru/daily_json.js

“Заголовки“ - авторизованные заголовки

Возможно использовать форматы application/json и application/x-www-form-urlencoded

В строке “заголовок” укажите один из представленных заголовков для данных:

  • Content-Type:application/x-www-form-urlencoded

  • Content-Type:application/json

Альтернативный пример заголовка авторизации для интеграции со сторонними API:

  • Authorization: Barear 1256gkdgifjhdiojkbofijb;

“Тело запроса“ - переменная которую нужно отдать.

Возможно использовать форматы application/json и application/x-www-form-urlencoded

Пример тела запроса:

  • для заголовка Content-Type:application/json: {"name":455,"phone":12345}

  • для заголовка Content-Type:application/x-www-form-urlencoded: name=455&phone=12345

Использование внутренних переменных в запросах

  • “Номер телефона клиента“, id в мессенджере: phone=[[ message['author'] ]]

  • “Текст сообщения“: text=[[ message['body'] ]]

  • “Имя пользователя в IntellectDialog“ “если есть в intellectdialog“: name=[[ people['name'] ]]

  • “Имя пользователя в мессенджере“ “если передано мессенджером“: username=[[ message['senderName'] ]]

Выгрузка пользовательских переменных:

Пример: у нас есть пользовательская переменная Количество баллов

Пишем запрос для нее: points=[[ get-data('Количество баллов') ]]

Согласно данного примера, вы можете передавать через http-запрос любую другую пользовательскую переменную.

Использование нескольких переменных в одном запросе

  • Для использования нескольких переменных в одном запросе используйте символ &.

 

Дополнительные параметры

  • Строка 2 “if request_code==200” - признак успешного выполнения запроса для бота

  • Строка 3 “Текст при успешном выполнение запроса“

  • Строка 4 “Переменная request” - если запрос возвращает какие-то данные, они содержатся в переменно request

Пример: request['Valute']['USD']['Value']

  • Строка 5 “else“ - условие если запрос не выполнился

  • Строка 6 “Текст при неуспешном выполнение запроса“

  • Строка 7 “code“ - код ошибки

  • Строка 8 “/if“ - завершение условия запроса

  • Строка 9 “answer“ - меню

 

Пример использования Post запроса отправки текста сообщения, id пользователя и имени пользователя в Zapier

 

 

Если нам нужно просто выгрузить данные во внешнюю систему, и не нужно в сообщение выводить следующие параметры:

Строка 2 “if request_code==200” - признак успешного выполнения запроса для бота
Строка 3 “Текст при успешном выполнение запроса“
Строка 4 “Переменная request” - если запрос возвращает какие-то данные, они содержатся в переменно request
Пример: request['Valute']['USD']['Value']
Строка 5 “else“ - условие если запрос не выполнился
Строка 6 “Текст при неуспешном выполнение запроса“
Строка 7 “code“ - код ошибки
Строка 8 “/if“ - завершение условия запроса

их нужно удалить.

 

Итоговый вариант для выгрузки ответа в Zapier:

Запускаем бот и тестируем

Выгрузка данных в Trello

Данные ответа с указанными параметрами пользователя, были успешно выгружены

 

Выгрузка данных о последней конверсии связанной с данным пользователем:

Доступные параметры:

ga = google analitics

ya = yandex metrics

l = url

а так же все переданные гет параметры, например:

utm_source

utm_medium

utm_campaign

utm_content

utm_term

Синтексис запроса:

Совпадает с передачей пользовательской переменной

utm_source=[[ get-data('utm_source') ]]

google analitics=[[ get-data('ga') ]]&yandex metrics=[[ get-data('ya') ]]&url=[[ get-data('l') ]]&utm_medium=[[ get-data('utm_medium') ]]&utm_campaign=[[ get-data('utm_campaign') ]]&utm_content=[[ get-data('utm_content') ]]&utm_term=[[ get-data('utm_term') ]]