Сервис для получения данных пользователей с их согласия.
Перед использованием сервиса, ознакомьтесь с условиями подключения сервиса SmartProfile. С принципом работы, типами сообщений и кодами ошибок можно ознакомиться в разделе API SmartProfile.
Сервис недоступен в проектах SaluteBot. Проверить работу сервиса в тестовом виджете нельзя.
Методы
getProfileData
Возвращает данные из профиля пользователя.
Пример вызова:
script: $smartProfile.getProfileData();
chooseProfileData
Позволяет изменить адрес доставки, телефонный номер и адрес электронной почты пользователя.
Пример вызова:
script:
var payload = {
"changeAddress": true,
"changePhone": true,
"changeEmail": true,
}
$smartProfile.chooseProfileData(payload)
Параметры метода:
changeAddress
— обязательное поле. Логический тип. Может принимать значенияtrue
илиfalse
. Указывает на необходимость изменения адреса доставки.changePhone
— обязательное поле. Логический тип. Может принимать значенияtrue
илиfalse
. Указывает на необходимость изменения телефонного номера заказчика.changeEmail
— обязательное поле. Логический тип. Может принимать значенияtrue
илиfalse
. Указывает на необходимость изменения адреса электронной почты заказчика.
detailedProfileData
Предлагает пользователю уточнить данные адреса. Например, указать подъезд или этаж.
Пример вызова:
script: $smartProfile.detailedProfileData();
Пример ответа
Пример запроса данных пользователя можно посмотреть в демонстрационном приложении.
При успешном выполнении методов возвращается сообщение 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": {
"customer_name": "Иван",
"surname": "Иванов",
"patronymic": "Иванович",
"birthDate": "01.01.2000",
"phone_number": 79161234567,
"email": "ivanov@site.ru",
"address": {
"location": {
"latitude": 56.77,
"longitude": 23.88
},
"address_string": "Кутузовский пр-т 32",
"country": "Россия",
"region": "Москва",
"city": "Москва",
"settlement": "Поселок",
"district": "Ленинский",
"street": "Кутузовский проспект",
"house": 32,
"building": 1,
"floor": 12,
"entrance": 3,
"apartment": 134,
"door_code": 134,
"alias": "Офис в Москве",
"comment": "Дома после 18 часов",
"address_type": "Рабочий"
}
},
"status_code": {
"code": 1,
"description": "SUCCESS"
}
}
}
SUCCESS
— Данные существуют и получено согласие пользователя. Соответствует коду001
EMPTY DATA
— Данные отсутствуют в профиле. Соответствует коду100
CLIENT DENIED
— Пользователь отклонил автозаполнение. Соответствует коду101
FORBIDDEN
— Запрещенный вызов от смартапа дляGET_PROFILE_DATA
. Соответствует коду102
FORBIDDEN REQUEST
— Запрещенный вызов от смартапа дляCHOOSE_PROFILE_DATA
иDETAILED_PROFILE_DATA
при отсутствии согласия пользователя. Соответствует коду103
ACCESS DENIED
— Запрещенный вызов от смартапа дляCHOOSE_PROFILE_DATA
иDETAILED_PROFILE_DATA
при отсутствии прав на изменение или уточнение данных. Соответствует коду104
Идентификатор сообщения
Идентификатор сессии
uuid
object
Идентификатор пользователя
Идентификатор канала коммуникации
Название сообщения
payload
object
profile_data
object
Имя
Фамилия
Отчество
Дата рождения
Номер телефона
Адрес электронной почты
address
object
Данные адреса
location
object
Географические координаты
Широта
Долгота
Строка с данными адреса
Страна
Регио н
Город
Тип населенного пункта
Район
Улица
Дом
Строение
Этаж
Подъезд
Номер квартиры или офиса
Код подъезда
Название адреса
Комментарий
Тип адреса
status_code
object
Возможные значения: [1
, 100
, 101
, 102
, 103
, 104
]
Код ответа
Возможные значения: [SUCCESS
, EMPTY DATA
, CLIENT DENIED
, FORBIDDEN
, FORBIDDEN REQUEST
, ACCESS DENIED
]
Описание ответа. Возможные значения:
После получения сообщения TAKE_PROFILE_DATA
необходимо его обработать с помощью тега event:
. Затем данные профиля сохранятся в поле {{data.eventData.profile_data }}
системной переменной {{$request }}
.
Теперь можно вывести, например, номер телефона:
state:
event!: TAKE_PROFILE_DATA
a: Номер телефона: {{$request.data.eventData.profile_data.phone_number}}
Также необходимую информацию можно получить с помощью выражения:
$request.rawRequest.payload.profile_data.phone_number
Это выражение выведет данные напрямую из поля rawRequset.payload.profile_data
системной переменной $request
.
Значительной разницы между вариантами доступа к данным нет.