Для защиты от несанкционированного доступа к API перед подключением мы проверяем:
- наличие у приложения действующей подписки, которая инициирует вызов;
- сессию токена;
- запрос и ответ на соответствие схемам API.
Чтобы подклю чить API:
- Получите ClientId и ClientSecret для смартапа.
- Добавьте сценарий получения
access_token
в сервис для вызова API. - Добавьте
access_token
в сервис для вызова SmartPush API.
Шаг 1. Получите ClientId и ClientSecret
Запрос доступа
Чтобы получить ClientId и ClientSecret:
- Перейдите в Studio в личное пространство и нажмите кнопку Создать проект.
- Нажмите на проект SmartService и выберите SmartPush.
- Напишите обоснование, для чего вам доступ к сервису и нажмите кнопку Отправить на модерацию. Подробнее о заполнении заявки читайте в разделе Проект для SmartServices.
Когда доступы появятся, вы сможете использовать сервисы. Информация о статусе будет доступна в настройке проекта в карточке Доступы.

Генерация secret
После пройденной модерации в карточке с доступами отобразится раздел со следующими настройками:
- client_id — значение отображается всегда;
- scope — отображается список сервисов, к которым открыт доступ, например, SmartPush, SaluteSpeech;
- secret — отображается после наж атия кнопки Получить Client Secret.
Подробнее о доступах читайте в разделе Получение доступов к SmartPush. Чтобы получить ClientSecret, нажмите кнопку Получить Client Secret. Скопируйте значения и используйте их для дальнейшей работы с API SmartServices.
Шаг 2. Добавьте access_token в сервис API
На этом шаге необходимо добавить сценарий получения access_token
в сервис вызова API.
Формат запроса
Параметры запроса
Поле | Описание |
---|---|
Обязательное | Авторизационные данные. Значения clientId и clientSecret кодируются в Base 64 и разделяются двоеточием:
|
Обязательное | Уникальный идентификатор запроса. Формируется по паттерну |
Обязательное | Значение сервиса — |
curl --location --request POST 'https://ngw.devices.sberbank.ru:9443/api/v2/oauth' \
--header 'Authorization: Basic
ZTU2MjM2MjctYmI4Yy00MTJjLTk0Yjct232hNjk5OGU4ZWYzOjg4N2QxNWEyLWNiNGYtNDk5OC05NTkxLTViMjZkNjJkMzc1MQ==' \
--header 'RqUID: 6f0b1291-c7f3-43c6-bb2e-9f3efb2dc98e' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'scope=SMART_PUSH'
Пример запроса из SmartApp Framework
var response = $http.query(tokenUrl, {
method: "POST",
headers: {
RqUID: reqId,
"Content-Type": "application/x-www-form-urlencoded",
Authorization: "Basic " + auth,
},
form: {
scope: "SMART_PUSH",
},
dataType: "text",
});
Формат ответа
Поле | Описание |
---|---|
Обязательное | Сгенерированный токен |
Обязательное | Время действия токена в секундах |
{
"access_token": "eyJlbmMiOiJBMjU2Q0JDLUhTNTEyIiwiYWxnIjoiUVAtMjU2In0",
"expires_at": 1617814516729
}
Пример ответа в случае ошибки 400
{
"code": "SCOPE_DATA_FORMAT_INVALID",
"message": "%s data format invalid"
}