Интеграция со сторонними API
В данной статье описан пример создания бота, работающего с внутренним API Wifire. (получает и отправляет информацию)
Вы можете создавать ботов, которые взаимодействуют с другими ресурсами по API. Например, боты могут выполнять запросы с проверкой возможности записаться на определенную дату или найти товар в интернет магазине.
Внимательно читайте документацию в сторонних API
В поле "URL запроса" пишем указанный URL https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/address
В поле "Заголовок запроса" пишем заголовок в формате JSON
{ "Content-Type": "application/json", "Accept": "application/json", "Authorization": "Token " + token }
В поле "JSON параметры" пишем сам запрос { "query": "#{CurrencyType}" }
Для получения результата запроса необходимо заполнить поле "Со храняемые значения"
Пример запроса на рисунке ниже:

С первого раза это не совсем понятно, пока не попробуешь самостоятельно это сделать.
Для начала введите #{custom_answer} в поле ответ. ( Переменная #{custom_answer} - содержит в себе ответ, полученный с сервера, указанного в поле 'URL для ответа с сервера')
Запустите блок с запросом, чтобы отправить запрос и получить ответ на него. Полученный ответ надо проанализировать и настроить получение переменных из него. Для этого в поле "Сохраняемые значения"
Разберем пример, описанный выше:
Лучше всего можно понять принцип адресации при работе с JSON на примере. В результате нашего запроса в #{custom_answer} пришел ответ формата:
{"suggestions": [{"value": "Белорусский рубль", "unrestricted_value": "Белорусский рубль", "data": {"code": "933", "strcode": "BYN", "name": "Белорусский рубль", "country": "Беларусь"}}]}
В поле "Сохраняемые значения" пишем ЗНАЧЕНИЕ->ПЕРЕМЕННАЯ:
suggestions|0|value->CurrencyType;
suggestions|0|data|code->CurrencyDigCode;
suggestions|0|data|strcode->CurrencyStrCode;
suggestions|0|data|country->CurrencyCountry
suggestions - ключ для массива [{"value": "Белорусский рубль", "unrestricted_value": "Белорусский рубль", "data": {"code": "933", "strcode": "BYN", "name": "Белорусский рубль", "country": "Беларусь"}}]
suggestions|0 - ключ для первого элемента массива {"value": "Белорусский рубль", "unrestricted_value": "Белорусский рубль", "data": {"code": "933", "strcode": "BYN", "name": "Белорусский рубль", "country": "Беларусь"}}
suggestions|0|value - ключ для значения "Белорусский рубль"
Самый длинный ключ в этом JSON:
suggestions|0|data|strcode - ключ для значения BYN
Ключи разделяются вертикальной чертой. Если в JSON есть массив, то доступ к его элементу идет по номеру, начиная с 0 и также записывается через вертикальную черту.
Необходимо повторить всю вложенность. Для удобства можно визуализировать JSON через приложение JSON-viewer.
Уровень вложенности разделяется вертикальной чертой. То есть вам нужно перечислить все ключи, для того чтобы дойти до значения разделив их вертикальной чертой.
Если в json присутствует массив, вместо ключа нужно указать номер элемента массива, начиная с нуля.
Разделяем выражения получения наших переменных символом " ; "(точка с запятой). Выражения состоят из ссылки к данным в ответе на запрос и названия переменной для сохранения разделенных символами -> (минус больше).
Поисковой запрос представляет собой путь в JSON до требуемого значения.
Для того, чтобы разработать API, нужен хостинг, на котором оно будет размещено. Если у вас его нет или вы не умеете программировать, можете обратиться к нам, и мы разработаем API для вашего бота и разместим все у себя. Хостинг API бесплатный, вы платите только за разработку.
А пока немного теории.
Бот поддерживает запросы GET и POST, это основные типы запроса, которые используются в большинстве публичных API.
GET - это тот запрос, который происходит по клику по ссылке или при открытии ссылки в браузере. Параметры в данном запросе передаются в URL-запроса.
Синтаксис передачи параметров: после url ставится знак вопроса(?), дальше каждый параметр разделен знаком амперсанда(&). Параметр состоит из имени и после знака равно его значения. Пример URL с параметром:
