Ниже рассмотрим, каким образом бот может взаимодействовать с API Яндекса на примере получения информации о ближайшем городе в определенной точке. Точка определяется географическими координатами широты и долготы согласно всемирной системе геодезических параметров Земли (WGS84).
Выполните следующие действия:
- Перейдите в раздел Сценарии – Сценарии.
2. Создайте новый сценарий.
23. Нажмите кнопку в строке созданного сценария.
34. Разместите в сценарии блок Вопрос. В поле Вопрос (произносится роботом) введите следующий текст: «Назовите значение северной широты».
45. Разместите в сценарии еще один блок Вопрос. В поле Вопрос (произносится роботом) введите следующий текст: «Задайте значение восточной долготы».
56. Выберите соединительную стрелку между блоками Вопрос и в параметрах стрелки задайте следующие настройки:
- Установите флажок напротив параметра Сохранить ответ.
- В поле Название переменной введите значение lat. Эта переменная будет хранить значение северной широты.
- В поле Тип выходных данных выберите значение Ветка по умолчанию.
67. Повторите указанные выше действия чтобы разместить еще один блок Вопрос с текстом, как указано на рисунке ниже.
78. Выберите соединительную стрелку между блоками Вопрос и в параметрах стрелки задайте следующие настройки:
- Установите флажок напротив параметра Сохранить ответ.
- В поле Название переменной введите значение lng. Эта переменная будет хранить значение восточной долготы.
- В поле Тип выходных данных выберите значение Ветка по умолчанию.
89. После последнего блока Вопрос добавьте блок Запрос к серверу.
910. Выделите блок Запрос к серверу и в параметрах блока задайте следующие настройки:
- В поле Тип авторизации выберите значение Отсутствует.
- В поле Выберите тип запроса выберите значение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
– радиус,в пределах которого будет выполнен поиск самого близкого города.
1011. Выберите соединительную стрелку между блоками Вопрос и Запрос к серверу и в параметрах стрелки задайте следующие настройки:
- Установите флажок напротив параметра Сохранить ответ.
- В поле Название переменной введите значение distance. Эта переменная будет хранить значение радиуса, в пределах которого будет выполнен поиск самого близкого города.
- В поле Тип выходных данных выберите значение Ветка по умолчанию.
1112. После блока Запрос к серверу разместите блок Информация со следующим текстом: «В радиусе 50 км для указанной точки ближайшим городом будет {city}», где:
- {city}– имя переменной, которая будет возвращать название ближайшего города.
1213. Выберите соединительную стрелку между блоками Запрос к серверу и Информация и в параметрах стрелки задайте следующие настройки:
- В поле Тип выберите значение Результат.
- В поле Успешность запроса выберите значение Успешно.
- В поле Код ответа выберите значение 200.
- В поле Присвоить переменные при выборе ветки введите название переменной city и значение title. Эта переменная будет хранить значение города, который содержится в поле title возвращаемого JSON-объекта.
Информация |
---|
При необходимости создайте вторую ветку с блоком Информация для случая, когда город не будет найден (код ответа 404). |
1314. Нажмите кнопку Сохранить в верхней части редактора сценариев.
Сценарий будет сохранен. Начните диалог с ботом и проверьте, что сценарий работает корректно.