Отправка уведомлений SmartPush
Push-уведомления отправляются только по заранее согласованному шаблону. Подробнее читайте в разделе Шаблоны уведомлений.
Для вызова метода SmartPush вы должны быть авторизованы.
Виды запросов:
- Базовый — простая отправка push-уведомления.
- Расширенный — отправка уведомления с дополнительными функциями: отложенная отправка, отправка на все устройства и т. д.
Ограничения
Сервис устанавливает ограничения на отправку уведомлений в разрезе времени и пользователей:
- Общее количество сообщений за минуту, час или сутки.
- Количество сообщений уникальному пользователю за минуту, час или сутки.
Лимиты устанавливаются в зависимости от потребностей смартапа и по согласованию с модераторами.
Базовый запрос
URL для отправки базового запроса:
https://ngw.devices.sberbank.ru:9443/api/v2/smartpush/apprequest-lite
Тип запроса: POST application/JSON.
SCOPE для доступа при запросе access_token = SMART_PUSH.
Параметры заголовка
Параметр | Описание |
---|---|
Обязательное |
Уникальный UID запроса |
Обязательное |
Авторизационные данные. Необходимо в поле указать «Bearer» и через пробел access_token |
|
URL для доставки статусов уведомлений |
Параметры тела запроса
- Пример
- Описание
{
"projectId": "83cdd6c6-757a-42ce-b4fe-03912fb7d6e1",
"clientId": "1596f2a624c003fdb31eb5000e49f1efe8ccf51fd0001f9b499c5881cdca1d95d24e4bf802c48fe0",
"surface": "COMPANION",
"templateContent": {
"id": "49061553-27c7-4471-9145-d8d6137657da",
"headerValues": {
"clientname": "Иван",
"bandname": "Ласковый май"
},
"bodyValues": {
"formatname": "альбома",
"bandname": "Ласковый май",
"releasename": "Новое"
}
}
}
COMPANION
— мобильное приложение Салют;SBERBOX
— SberBox;STARGATE
— SberPortal;SATELLITE
— SberBox Top;TIME
— SberBox Time;TV_HUAWEI
— Huawei Vision;TV
— Салют ТВ.
Идентификатор проекта или смартапа в SmartMarket Studio
Уникальный идентификатор клиента. Соответствует полю sub
в запросах ассистента
Возможные значения: [COMPANION
, SBERBOX
, STARGATE
, SATELLITE
, TIME
, TV_HUAWEI
, TV
]
Поверхность отправки уведомления. Возможные значения:
templateContent
object
required
Параметры шаблона
Идентификатор шаблона
headerValues
object
Набор значений переменных заголовка из шаблона
Произвольная переменная из заголовка шаблона
Произвольная переменная из заголовка шаблона
bodyValues
object
Набор значений переменных текста из шаблона
Произвольная переменная из текста шаблона
Произвольная переменная из текста шаблона
Произвольная переменная из текста шаблона
Расширенный запрос
Если вы хотите автоматически отправлять уведомления по расписанию, получать информацию о статусе доставки и т. д., используйте расширенный запрос.
URL для отправки расширенного запроса:
https://ngw.devices.sberbank.ru:9443/api/v2/smartpush/apprequest
Тип запроса: POST application/JSON.
SCOPE для доступа при запросе access_token = SMART_PUSH.
Параметры заголовка
Параметр | Описание |
---|---|
Обязательное |
Уникальный UID запроса |
Обязательное |
Авторизационные данные. Необходимо в поле указать «Bearer» и через пробел access_token |
|
URL для доставки статусов уведомлений |
Параметры тела запроса
- Пример
- Описание
{
"protocolVersion": "V1",
"messageId": 37284759,
"messageName": "SEND_PUSH",
"payload": {
"sender": {
"projectId": "3fa85f64-5717-4562-b3ab-2c963f66baa6",
"application": {
"appId": "3fa85f64-5717-4562-b3fc-2c963f66afa7",
"versionId": "fcac2f61-57a7-4d6d-b3fc-2c963f66a111"
}
},
"recipient": {
"clientId": {
"idType": "SUB",
"id": "6852d76cea737bb751f89e82523a2d97f9765c0d7b8a6eaf821497c1b17df87ba3028e64eea639f7"
}
},
"deliveryConfig": {
"deliveryMode": "BROADCAST",
"destinations": [
{
"channel": "COMPANION_B2C",
"surface": "COMPANION",
"templateContent": {
"id": "49061553-27c7-4471-9145-d8d6137657da",
"headerValues": {
"clientname": "Иван",
"bandname": "Ласковый май"
},
"bodyValues": {
"formatname": "альбома",
"bandname": "Ласковый май",
"releasename": "Новое"
},
"mobileAppParameters": {
"deeplinkAndroid": "laskoviyi-mai-listen-android",
"deeplinkIos": "laskoviyi-mai-listen-ios"
},
"timeFrame": {
"startTime": "13:30:00",
"finishTime": "15:00:00",
"timeZone": "GMT+03:00",
"startDate": "2020-06-04",
"endDate": "2020-06-05"
}
}
}
]
}
}
}
broadcast
— отправка на все устройства;sequential
— отправка на устройства или мобильное приложение в зависимости от приоритетаArray [
COMPANION
— мобильное приложение Салют;SBERBOX
— SberBox;STARGATE
— SberPortal;SATELLITE
— SberBox Top;TIME
— SberBox Time;TV_HUAWEI
— Huawei Vision;TV
— Салют ТВ.]
Возможные значения: <= 16 characters
Формат протокола
Идентификатор клиентского сообщения в рамках сессии
Возможные значения: <= 64 characters
Тип сообщения
payload
object
required
Бизнес параметры
sender
object
required
Информация об отправителе
Идентификатор проекта или смартапа в SmartMarket Studio
application
object
Информация о приложении
Идентификатор смартапа
Идентификатор версии смартапа
recipient
object
required
Информация о получателе
clientId
object
required
Тип идентификатора клиента
Возможные значения: >= 16 characters
и <= 256 characters
Идентификатор клиента
deliveryConfig
object
Настройки доставки
Возможные значения: [broadcast
, sequential
]
Тип доставки. Возможные значения:
destinations
object[]
required
Настройки получателя
Возможные значения: <= 128 characters
Канал получателя
Возможные значения: [COMPANION
, SBERBOX
, STARGATE
, SATELLITE
, TIME
, TV_HUAWEI
, TV
]
Поверхность получателя. Возможные значения:
templateContent
object
required
Содержимое настроек для получателя под текущим номером
Возможные значения: <= 36 characters
Идентификатор шаблона
headerValues
object
Переменные заголовка push-уведомления для подстановки в шаблон
Произвольная переменная из заголовка шаблона
Произвольная переменная из заголовка шаблона
bodyValues
object
Переменные текста push-уведомления для подстановки в шаблон
Произвольная переменная из текста шаблона
Произвольная переменная из текста шаблона
Произвольная переменная из текста шаблона
mobileAppParameters
object
Блок с параметрами для отправки в мобильное приложение Салют
Возможные значения: <= 350 characters
Сценарий для Android-устройств
Возможные значения: <= 350 characters
Сценарий для iOS-устройств
timeFrame
object
Настройки времени для отложенной отправки push-уведомления под текущим номером. Дата и время передаются в формате ISO
Стартовое время отправки push-уведомления
Финальное время отправки push-уведомления. Передается в формате hh:mm:ss. Если endDate превышает текущий день, а finishTime превышает текущее время, то уведомление не отправится
Часовой пояс пользователя в формате GMT+hh:mm (если известен). Можно указать этот параметр, чтобы уведомления отправлялись в удобное для пользователя время
Стартовая дата отправки push-уведомления. Передается в формате yyyy-mm-dd
Возможные значения: <= 30 characters
Финальная дата отправки push-уведомления. Передается в формате yyyy-mm-dd
Формат ответа
200 Успешный ответ
- Пример
- Описание
{
"requestId": "2fbe6e9f-35ad-44fe-ab4f-dde88b76bd49",
"responseId": "536c56a9-5a9a-4862-aff6-fc03ea85df93",
"timestamp": "2020-02-20T19:30:15Z",
"code": 200,
"payload": {
"messageId": 1111111111111,
"messageName": "PUSH_RESULT",
"protocolVersion": "V1",
"validation": {
"results": [
{
"status": {
"code": 0,
"descr": "Success"
},
"surface": "COMPANION"
}
]
}
}
}
Array [
]
Возможные значения: <= 36 characters
Идентификатор запроса, переданный клиентом
Возможные значения: <= 36 characters
Идентификатор ответа сервера
Возможные значения: <= 30 characters
Время формирования ответа
HTTP-код ответа
payload
object
Полезная нагрузка успешного ответа
Идентификатор клиентского сообщения в рамках сессии
Возможные значения: <= 64 characters
Идентификатор ответа сервера
Версия протокола
validation
object
Бизнес параметры
results
object[]
Массив с данными о доставке уведомления на различные поверхности
status
object
Код ответа сервиса
Описание ответа
Тип поверхности, от которой получен ответ
400 Ошибка
- Пример
- Описание
{
"requestId": "2fbe6e9f-35ad-44fe-ab4f-dde88b76bd49",
"responseId": "536c56a9-5a9a-4862-aff6-fc03ea85df93",
"timestamp": "2020-02-20T19:30:15Z",
"code": 400,
"errors": [
{
"key": "AB127",
"message": "Error!"
}
]
}
Array [
]
Возможные значения: <= 36 characters
Идентификатор запроса, переданный клиентом
Возможные значения: <= 36 characters
Идентификатор ответа сервера
Возможные значения: <= 30 characters
Время формирования ответа
HTTP-код ответа
errors
object[]
Блок с деталями ответа. Возвращается при неуспешном ответе
Пример поля
Пример сообщения
Коды ответа HTTP
В ответ на каждый запрос могут возвращаться следующие коды:
Код | Описание |
---|---|
| Запрос обработан успешно |
| Неверный формат запроса. Необходимо проверить поля на соответствие формату API |
| Ошибка авторизации. В ответе с таким кодом должен присутствовать заголовок «Authenticate: error="invalid_request"» |
| Необрабатываемые ошибки или внутренние ошибки подключения, доступности серверов, логики обработки |
Коды ответов сервиса
Код, значение | Описание |
---|---|
Success | Успешно |
Schema validation error | Нарушены правила proto (неверный тип поля, размерность или обязательность) |
Message validation error | Неправильно переданы данные во входящем запросе, например: в одном уведомлении указаны блоки |
Client id type is invalid | Указан недопустимый тип clientId |
Delivery type error | Ошибка в параметрах типа отправки |
Unknown surface of channel | Не указан channel или surface |
Surface is not defined | Не удалось определить поверхность для отправки |
Destination has both mobile app and device parameters | В блоке destination одновременно указаны блоки для мобильных поверхностей и устройств |
Specified time validation error | Время доставки указано некорректно |
Surface parameters error | Для отправки на мобильное приложение переданы параметры для устройства или наоборот |
Sub format is invalid | Sub в запросе не соответствует формату |
Sending notifications for this project/app forbidden | Смартап не может отправлять push-уведо мления |
Sending limit exceeded | Превышен минутный, часовой или суточный лимит на отправку уведомлений |
Device filters have both deviceSerialFilter and productFilter | В запросе для отправки уведомления на устройство одновременно заполнены |
Specified template for specified project does not exist | В проекте нет такого шаблона |
Specified template params are invalid | Параметры запроса не соответствуют шаблону |
Client sending limit exceeded | Достигнут лимит на отправку push-уведомлений этому клиенту |