Ниже рассмотрим, каким образом робот может работать с API Яндекса на примере получения информации о ближайшем городе в определенной точке. Точка определяется географическими координатами широты и долготы согласно всемирной системе геодезических параметров Земли (WGS84).
Выполните следующие действия:
- Перейдите в раздел Сценарии – Сценарии.
2. Создайте новый сценарий.
3. Нажмите кнопку в строке созданного сценария.
4. Разместите в сценарии блок Вопрос.
В поле Вопрос (произносится роботом) введите следующий текст: «Назовите значение северной широты».
5. Разместите в сценарии еще один блок Вопрос.
В поле Вопрос (произносится роботом) введите следующий текст: «Задайте значение восточной долготы».
6. Выберите соединительную стрелку между блоками Вопрос и в параметрах стрелки задайте следующие настройки:
- Установите флажок напротив параметра Сохранить ответ.
- В поле Название переменной введите значение lat. Эта переменная будет хранить значение северной широты.
- В поле Тип выходных данных выберите значение Ветка по умолчанию.
7. Повторите указанные выше действия чтобы разместить еще один блок Вопрос с текстом, как указано на рисунке ниже.
8. Выберите соединительную стрелку между блоками Вопрос и в параметрах стрелки задайте следующие настройки:
- Установите флажок напротив параметра Сохранить ответ.
- В поле Название переменной введите значение lng. Эта переменная будет хранить значение восточной долготы.
- В поле Тип выходных данных выберите значение Ветка по умолчанию.
9. После последнего блока Вопрос добавьте блок Запрос к серверу.
10. Выделите блок Запрос к серверу и в параметрах блока задайте следующие настройки:
- В поле Тип авторизации выберите значение Отсутствует.
- В поле Выберите тип запроса выберите значение GET.
- В поле URL введите следующее значение:
https://api.rasp.yandex.net/v3.0/nearest_settlement/?apikey={ключ API}format=json&lat={lat}&lng={lng}&distance={distance}
, где:apikey
– имя переменной, которая хранит ключ API.
Для выполнения запроса необходимо зарегистрировать вашу организацию в Яндексе и получить ключ API.
format
– формат возвращаемых данных.lat
– имя переменной, которая хранит значение северной широты.lng
– имя переменной, которая хранит значение восточной долготы.distance
– радиус, в пределах которого будет выполнен поиск самого близкого города.
11. Выберите соединительную стрелку между блоками Вопрос и Запрос к серверу и в параметрах стрелки задайте следующие настройки:
- Установите флажок напротив параметра Сохранить ответ.
- В поле Название переменной введите значение distance. Эта переменная будет хранить значение радиуса, в пределах которого будет выполнен поиск самого близкого города.
- В поле Тип выходных данных выберите значение Ветка по умолчанию.
12. После блока Запрос к серверу разместите блок Информация со следующим текстом: «В радиусе 50 км для указанной точки ближайшим городом будет {city}», где:
- {city} – имя переменной, которая будет возвращать название ближайшего города.
13. Выберите соединительную стрелку между блоками Запрос к серверу и Информация и в параметрах стрелки задайте следующие настройки:
- В поле Тип выберите значение Результат.
- В поле Успешность запроса выберите значение Успешно.
- В поле Код ответа выберите значение 200.
- В поле Присвоить переменные при выборе ветки введите название переменной city и значение title. Эта переменная будет хранить значение города, который содержится в поле title возвращаемого JSON-объекта.
При необходимости создайте вторую ветку с блоком Информация для случая, когда город не будет найден (код ответа 404).
14. Нажмите кнопку Сохранить в верхней части редактора сценариев.
Сценарий будет сохранен. Начните диалог с ботом и проверьте, что сценарий работает корректно.