Как начать работать c Locator
Этот раздел описывает, как определить местоположение устройства с помощью Locator API.
Перед началом
-
Получите идентификатор каталога, на который у вас есть роль
editor
или выше. Подробнее о необходимых ролях в разделе Управление доступом.Если каталога еще нет, создайте его:
-
На стартовой странице консоли управления нажмите кнопку Создать каталог.
-
Введите имя каталога.
- Длина — от 3 до 63 символов.
- Может содержать строчные буквы латинского алфавита, цифры и дефисы.
- Первый символ — буква. Последний символ — не дефис.
-
Выберите опцию Создать сеть по умолчанию. Будет создана сеть с подсетями в каждой зоне доступности.
-
Нажмите кнопку Создать.
-
-
Получите IAM-токен, необходимый для аутентификации (чтобы получить IAM-токен для сервисного аккаунта, воспользуйтесь другой инструкцией):
CLIAPI$ yc iam create-token
-
Войдите в ваш аккаунт на Яндексе или Яндекс.Коннекте.
-
Получите OAuth-токен в сервисе Яндекс.OAuth. Для этого перейдите по ссылке, нажмите Разрешить и скопируйте полученный OAuth-токен.
-
Обменяйте OAuth-токен на IAM-токен:
-
с помощью curl в Bash или CMD:
curl -d "{\"yandexPassportOauthToken\":\"<OAuth-token>\"}" "https://iam.api.cloud.yandex.net/iam/v1/tokens"
-
с помощью встроенной функции в PowerShell:
$yandexPassportOauthToken = "<OAuth-Token>" $Body = @{ yandexPassportOauthToken = "$yandexPassportOauthToken" } | ConvertTo-Json -Compress Invoke-RestMethod -Method 'POST' -Uri 'https://iam.api.cloud.yandex.net/iam/v1/tokens' -Body $Body -ContentType 'Application/json' | Select-Object -ExpandProperty iamToken
-
-
-
Убедитесь, что у вас установлена утилита cURL, используемая в примерах.
Определите местоположение устройства
-
Создайте файл с телом запроса, например
body.json
.
В запросе передайте всю информацию, доступную устройству:- Доступные точки доступа Wi-Fi.
- Сигналы сетей мобильной связи.
- IP-адрес устройства.
Подробное описание формата запроса смотрите в описании метода getLocation.
body.json:
{ "folder_id": "b1gvmob95yysaplct532", "cell_towers": [{ "mobile_country_code": 250, "mobile_network_code": 2, "cell_id": 197403650, "location_area_code": 9900, "signal_strength": -80 }], "wifi_access_points": [{ "bssid": "2CD02D814C80", "signal_strength": -68 }], "ip":"95.108.173.231" }
-
Отправьте запрос на распознавание с помощью метода getLocation и сохраните ответ в файл, например
output.json
:$ export IAM_TOKEN=CggaATEVAgA... $ curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${IAM_TOKEN}" \ -d '@body.json' \ https://locator.api.cloud.yandex.net/locator/v1/getLocation
Если сервис успешно определит местоположение, он вернет ответ с координатами точки и радиусом погрешности:
{ "location": { "latitude": 55.743675, "longitude": 37.5646301, "precision": 701.71643 } }
Если местоположение определить не удалось, сервис вернет сообщение об ошибке.