Перед добавлением уведомлений в смартап, подключите в проект сервис SmartPush.
Уведомления недоступны в проектах SaluteBot.
- Graph
- Code
- SmartApp Framework
Для отправки push-уведомлений:
Откройте проект SmartService и перейдите на вкладку Доступы.
Нажмите кнопку Получить Client Secret для получения доступа к шаблону SmartPush.
Перейдите в Studio в раздел Дополнения → Push-уведомления и скопируйте ID шаблона.
Откройте проект смартапа, в который хотите добавить push-уведомления.
Проект смартапа должен быть создан в том же пространстве, что и проект SmartService. Если вы разрабатываете смартап как индивидуальный предприниматель или юридическое лицо, то вы можете перенести смартап в нужное корпоративное пространство при создании шаблона уведомлений.
Перейдите раздел Токены → Системные токены и убедитесь в наличии токенов для работы со SmartService.
Если токены отсутствуют, проверьте что заявка на работу со SmartPush одобрена и сервис подключен к проекту.
Добавьте блок SmartPush Разрешение на отдельный экран сценария, чтобы запросить согласие пользователя на получение push-уведомлений.
В проекте смартапа добавьте блок SmartPush Отправка на нужный экран смартапа и заполните необходимые поля.
Если в заголовке и тексте шаблона уведомления используются переменные, их надо указать в полях вкладок Параметры заголовка и Параметры сообщения соответственно.
Протестируйте уведомления в приложении или на устройстве.
Для отправки push-уведомлений:
Откройте проект смартапа, в который хотите добавить push-уведомления.
Проект смартапа должен быть создан в том же пространстве, что и проект SmartService. Если вы разрабатываете смартап как индивидуальный предприниматель или юридическое лицо, то вы можете перенести смартап в нужное корпоративное пространство при создании шаблона уведомлений.
Перейдите раздел Токены → Системные токены и убедитесь в наличии токенов для работы со SmartService.
Если токены отсутствуют, проверьте что заявка на работу со SmartPush одобрена и сервис подключен к проекту.
Запросите разрешение пользователя на получение push-уведомлений.
Подключите встроенный сервис
$smartPush
.Получите разрешение пользователя на отправку уведомлений с помощью метода
$smartPush.getRuntimePermissions()
.На нужном этапе сценария задайте параметры уведомления и отправьте его с помощью метода
$smartPush.send(deliveryConfig, authConfig)
://Параметры уведомления
script: var deliveryConfig = {
deliveryMode: 'BROADCAST',
surface: 'COMPANION',
templateContent: {
id: '49061553-27c7-4471-9145-d8d6137c57da',
//Переменные заголовка уведомления, заданные в шаблоне
headerValues: {},
//Переменные текста уведомления, заданные в шаблоне
bodyValues: {},
mobileAppParameters: {
deeplinkAndroid: 'example-listen-android',
deeplinkIos: 'example-mai-listen-ios',
buttonText: 'Слушать',
},
},
};
//Авторизация вызова
//Параметр надо передавать, если в проекте не заданы системные токены
var authConfig = {
client_id: '$clietnId',
secret: '$secret',
scope: 'SMART_PUSH',
};
//Вызов сервиса
$smartPush
.send(deliveryConfig, authConfig)
.then(function (success) {
$response.data = 'success response';
$response.status = success.status;
$response.response = success.response;
return success;
})
.catch(function (error) {
$response.data = 'fail response';
$response.status = error.status;
$response.response = error.response;
$response.error = error.error;
});Протестируйте уведомления в приложении или на устройстве.
Для отправки push-уведомлений используется действие PushActionHttp, которое формирует HTTP-запрос к API SmartPush.
Перед отправкой push-уведомлений с помощью PushActionHttp:
- Получите токен авторизации с помощью действия
PushAuthenticationActionHttp
. - Получить разрешение на отправку push-уведомлений.
Получение токена
Поле | Описание |
---|---|
push_authentication |
|
Параметры действия:
{
"type": "push_authentication",// обязательный параметр
"url": "https://ngw.devices.sberbank.ru:9443/api/v2/oauth",// адрес для аутентификации. Необязательный параметр. По умолчанию https://ngw.devices.sberbank.ru:9443/api/v2/oauth
"client_id": "@!89FB.4D62.3A51.A9EB!0001!96E5.AE89!0008!B1AF.DB7D.1586.84F3",// обязательный параметр
"client_secret": "secret",// обязательный параметр
"behavior": "common_behavior"// необязательный параметр, по умолчанию "common_behavior"
}
Результат запроса сохраняется в переменной user.variables
, после выполнения метода process_result класса HTTPRequestAction.
Данные доступны в полях ответа:
user.variables.raw
илиuser.variables.raw ["push_authentification_response"]
;user.variables.value
илиuser.variables.value ["push_authentification_response"]
.
О получении токена читайте в разделе Аутентификация.
Для всех полей доступна шаблонная генерация. Значение можно передавать в формате строки.
Получение разрешения на отправку push-уведомлений
Поле | Описание |
---|---|
get_runtime_permissions |
|
Параметры действия:
{
"type": "get_runtime_permissions",// обязательный параметр
"behavior": "common_behavior"// обязательный параметр
}
Как получить разрешение пользователя на отправку push-уведомлений читайте в разделе Разрешение на уведомления.
Так как в смартапах, которые работают по HTTP, нельзя использовать более одной команды в сценарии, в success_action behavior нужно задать продолжение сценария с помощью PushActionHttp.
Коды ответов:
Код | Описание |
---|---|
| SUCCESS. Данные существуют и получено клиентское согласие |
| CLIENT DENIED. Клиент отклонил разрешение |
| FORBIDDEN. Запрещенный вызов от смартапа для GET_RUNTIME_PERMISSIONS |
Отправка push-уведомлений
Поле | Описание |
---|---|
push_http |
|
Пример базового запроса "type_request": "apprequest-lite"
:
{
"type": "push_http",
"type_request": "apprequest-lite",
"behavior": "some_behavior",
"surface": "COMPANION",
"url": "some_url",
"access_token": "{{variables.push_authentification_response.access_token}}",
"callbackUrl": "some_url",
"templateContent": {
"id": "49061553-27c7-4471-9145-d8d6137657da",
"headerValues": {
"clientname": "Иван",
"bandname": "Ласковый май"
},
"bodyValues": {
"formatname": "альбома",
"bandname": "Ласковый май",
"releasename": "Новое"
}
}
}
Пример расширенного запроса "type_request": "apprequest"
:
{
"type": "push_http",
"type_request": "apprequest",
"behavior": "some_behavior",
"access_token": "{{variables.push_authentification_response.access_token}}",
"url": "some_url",
"sender": {
"projectId": "3fa85f64-5717-4562-b3ab-2c963f66baa6"
},
"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"
}
}
}
]
}
}
Результат запроса сохраняется в переменной user.variables
, после выполнения метода process_result класса HTTPRequestAction.
Данные доступны в полях ответа:
user.variables.raw
илиuser.variables.raw ["push_http_response"]
;user.variables.value
илиuser.variables.value ["push_http_response"]
.
Примеры запросов и ответов вы найдете в разделе Отправка уведомлений SmartPush.
Для всех полей доступна шаблонная генерация. Значение можно передавать в формате строки.