Сервис для получения данных о местоположении пользователей с их согласия.
Перед использованием сервиса, ознакомьтесь с условиями подключения сервиса 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"
}
}
}
SUCCESS
— Данные существуют и получено согласие пользователя. Соответствует коду001
CLIENT DENIED
— Пользователь отклонил автозаполнение. Соотве тствует коду101
FORBIDDEN
— Этот смартап не может использовать сервис SmartGeo. Соответствует коду102
Идентификатор сообщения
Идентификатор сессии
uuid
object
Идентификатор пользователя
Идентификатор канала коммуникации
Название сообщения
payload
object
Тело сообщения
Данные об устройстве
profile_data
object
Данные профиля пользователя
geo
object
Данные о положении устройства пользователя
reverseGeocoding
object
Декодированные данные о положении устройства пользователя
Страна
Идентификатор региона
Название региона
Идентификатор субрегиона
Название субрегиона
Идентификатор города
Название города
location
object
Координаты устройства
Точность опредления положения
Широта
Долгота
Unix-время
Название источника данных
status_code
object
Возможные значения: [1
, 101
, 102
]
Код ответа
Возможные значения: [SUCCESS
, CLIENT DENIED
, FORBIDDEN
]
Описание ответа. Возможные значения:
После получения сообщения 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
.
Значительной разницы между вариантами доступа к данным нет.