ym88659208ym87991671
SmartGeo для разработки смартапов | Документация для разработчиков

smartGeo в Code

Обновлено 19 февраля 2025

Сервис для получения данных о местоположении пользователей с их согласия.

Перед использованием сервиса, ознакомьтесь с условиями подключения сервиса SmartGeo. С принципом работы, типами сообщений и кодами ошибок можно ознакомиться в разделе API SmartGeo.

Сервис недоступен в проектах SaluteBot. Проверить работу сервиса в тестовом виджете нельзя.

Методы

getProfileData

Возвращает данные из профиля пользователя.

Пример вызова:

script: $smartProfile.getProfileData();

Пример ответа

Пример запроса данных пользователя можно посмотреть в демонстрационном приложении.

При успешном выполнении методов возвращается сообщение TAKE_PROFILE_DATA.

{
"messageId": 1605196199186625000,
"sessionId": "0062530b-5521-42cc-90b0-a9d65dea4e98",
"uuid": {
"userId": "ec8a9097-1508-4bec-8d97-67f2329c03e0",
"userChannel": "B2C"
},
"messageName": "TAKE_PROFILE_DATA",
"payload": {
"device": {},
"profile_data": {
"geo": {
"reverseGeocoding": {
"country": "Российская Федерация",
"region_id": 20666588000,
"region": "Ненецкий автономный округ",
"subregion_id": 23575664000,
"subregion": "Заполярный район",
"city_id": 27720392000,
"city": "Верхний Шар"
},
"location": {
"accuracy": 100,
"lat": 50.125,
"lon": 70.0124,
"timestamp": 1432233446145000,
"source": "gps"
}
}
},
"status_code": {
"code": 1,
"description": "SUCCESS"
}
}
}

После получения сообщения TAKE_PROFILE_DATA необходимо его обработать с помощью тега event:. Затем данные о местоположении сохранятся в поле {{data.eventData.profile_data.geo }} системной переменной {{$request }}.

Теперь можно вывести, например, страну местонахождения пользователя:

state:
event!: TAKE_PROFILE_DATA
a: Вы находитесь в:
{{$request.data.eventData.profile_data.geo.reverseGeocoding.country}}

Также необходимую информацию можно получить с помощью выражения:

$request.rawRequest.payload.profile_data.geo.reverseGeocoding.country

Оно выведет данные напрямую из поля rawRequest.payload.profile_data.geo системной переменной $request. Значительной разницы между вариантами доступа к данным нет.

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера.