Сервис для получения данных пользователей с их согласия.
Перед использованием сервиса, ознакомьтесь с условиями подключения сервиса 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
.
- Пример
- Описание
После получения сообщения 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
.
Значительной разницы между вариантами доступа к данным нет.