Appearance
Чтение профиля
Вы можете получать данные двумя способами:
- Полный профиль с помощью CURL-запроса с передачей
shop_secret. - Ограниченный профиль с нечувствительными данными из SDK без передачи секретного ключа. Это может потребоваться для проверки некоторых свойств, чтобы кастомизировать интерфейс сайта или мобильного приложения под посетителя.
GET https://api.rees46.ru/profileПараметры
| Параметр | Обязателен? | Описание |
|---|---|---|
| shop_id | Да | API-ключ |
| shop_secret | Нет | Секретный API-ключ для получения полного профиля клиента |
| did* | Да | Идентификатор устройства |
| email* | Нет | Email клиента |
| phone* | Нет | Телефон клиента |
| external_id* | Нет | Внешний идентификатор клиента |
| loyalty_id* | Нет | Идентификатор внешней программы лояльности клиента |
| telegram_id* | Нет | Telegram ID клиента |
Идентификаторы
Параметры, отмеченные [*] - обязателен хотя бы один из них. На стороне сайта или мобильных приложений SDK автоматически передает did.
Запрос
Пример запроса:
shell
curl https://api.rees46.ru/profile?shop_id=...&shop_secret=...&email=...javascript
r46('profile', 'get', function(profile) {
// В коллбэке доступен объект профиля
console.log(profile);
},
// Укажите `true`, если JS SDK работает в режиме SPA-сайта. Иначе по-умолчанию используется `false`
false
);swift
// NOT IMPLEMENTED YET: DEV-4062kotlin
// NOT IMPLEMENTED YET: DEV-4063java
// NOT SUPPORTEDjavascript
sdk.getProfile().then((profile) => {
// В случае успеха
console.log(profile)
}).catch((err) => {
// В случае ошибки запроса
console.log(err)
})Ответ
Свойства ответа
Набор свойств ответа может отличаться в зависимости настроек вашего проекта и активированных сервисов.
Пример ответа сервера, если запрос без секретного ключа:
json
{
"has_email": true,
"computed_gender": null,
"gender": null,
"bought_something": false,
"id": "...",
"custom_properties": {}
}Пример ответа сервера, если запрос с секретным ключом:
json
{
"first_name": "...",
"last_name": "...",
"email": "...",
"phone": "...",
"fb_id": "...",
"vk_id": "...",
"telegram_id": "...",
"loyalty_id": "...",
"loyalty_card_location": "...",
"loyalty_status": "...",
"loyalty_bonuses": "...",
"loyalty_bonuses_to_next_level": "...",
"gender": "...",
"location": "...",
"age": "...",
"birthday": "...",
"bought_something": "...",
"tags": [
"...",
"..."
],
"custom_properties": {
"prop_key_1": "prop_value",
"prop_key_2": "prop_value"
},
"additional_phones": [],
"additional_emails": [],
"additional_loyalty_ids": [],
"orders": [
{
"id": "...",
"value": "...",
"status": "...",
"items": [
{
"id": "...",
"price": "...",
"name": "...",
"quantity": "..."
},
{
"id": "...",
"price": "...",
"name": "...",
"quantity": "..."
}
]
}
]
}В случае ошибки ответ будет в формате:
json
{
"status": "error",
"payload": {
"message": "Shop not found"
}
}