Push#
Отправка push-уведомлений#
В push-уведомлениях доступна передача текста и, опционально, дополнительных параметров.
Примеры дополнительных параметров:
заголовок;
изображения;
кнопки выбора действия;
HTML-страницы;
шаблоны для передачи чувствительных данных;
параметры для обогащения данных;
данные без предварительной обработки (в формате JSON);
клиентские данные для статистики;
данные для обновления виджета Live Activity;
признак главного приложения;
подписки мобильного приложения;
указание провайдеров (APNS, FCM, HMS, RuStore) для передачи данных.
Примеры запросов на отправку push-уведомлений#
Для формирования тестового запроса с вашими параметрами Открыть генератор запросов
Описание параметров useTimeDiff ; destAddr
1 {
2 {
3 "login":"ВАШ_ЛОГИН",
4 "password":"ВАШ_ПАРОЛЬ",
5 "extraParam":"param1=value1,param2=value2",
6 "useTimeDiff":true,
7 "id":"8770630",
8 "scheduleInfo":{
9 "timeBegin":"10:00",
10 "timeEnd":"12:00",
11 "weekdaysSchedule":"123",
12 "deadline": "2029-12-31T16:29:30+0300"
13 },
14 "destAddr":"Номер_Абонента",
15 "message":{
16 "type":"Push",
17 "data":{
18 "externalUserId": "ID_абонента",
19 "text":"Текст уведомления",
20 "serviceNumber":"НОМЕР_ОТПРАВИТЕЛЯ",
21 "ttl":10,
22 "ttlUnit": "SECONDS",
23 "registeredDelivery":"1",
24 "notifyUrl":"URL_для_передачи_статусов"
25 }
26 }
27 }
28 }
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "text":"Текст уведомления",
10 "serviceNumber":"НОМЕР_ОТПРАВИТЕЛЯ",
11 "ttl":2
12 }
13 }
14 }
Описание параметра title
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "title":"Заголовок Push-cсообщения",
10 "text":"Текст уведомления",
11 "serviceNumber":"НОМЕР_ОТПРАВИТЕЛЯ",
12 "ttl":2
13 }
14 }
15 }
Описание параметра primaryOn
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "text":"Текст уведомления",
10 "primaryOn":true,
11 "serviceNumber":"НОМЕР_ОТПРАВИТЕЛЯ",
12 "ttl":2
13 }
14 }
15 }
В данном примере сообщение передается по externalUserId клиента. Описание параметра contentCategory
1 {
2 "login": "ВАШ_ЛОГИН",
3 "password": "ВАШ_ПАРОЛЬ",
4 "id": "9999992",
5 "message": {
6 "type": "PUSH",
7 "data": {
8 "externalUserId": "ИД_абонента",
9 "text": "Текст_сообщения",
10 "serviceNumber": "0000",
11 "ttl": 40,
12 "ttlUnit": "SECONDS",
13 "content": {
14 "contentCategory": "IMAGE",
15 "contentUrl": "https://i.pinimg.com/originals/11/ab/14/11ab147894a7d2ce866ff88a4aa63655.jpg"
16 }
17 }
18 }
19 }
В данном примере сообщение передается по externalUserId клиента.
Описание параметров contentCategory ; actions
1 {
2 "login": "ВАШ_ЛОГИН",
3 "password": "ВАШ_ПАРОЛЬ",
4 "id": "9999992",
5 "message": {
6 "type": "PUSH",
7 "data": {
8 "externalUserId": "ИД_абонента",
9 "text": "Текст_сообщения",
10 "serviceNumber": "0000",
11 "ttl": 40,
12 "ttlUnit": "SECONDS",
13 "content": {
14 "contentCategory": "IMAGE",
15 "contentUrl": "https://i.pinimg.com/originals/11/ab/14/11ab147894a7d2ce866ff88a4aa63655.jpg",
16 "actions": [
17 {
18 "title": "Открыть",
19 "action": "link",
20 "options": "https://doc.rapporto.ru/"
21 },
22 {
23 "title": "Открыть приложение",
24 "action": "open-app",
25 "options": ""
26 }
27 ]
28 }
29 }
30 }
31 }
Описание параметра contentCategory
1 {
2 "login": "ВАШ_ЛОГИН",
3 "password": "ВАШ_ПАРОЛЬ",
4 "id": "9999992",
5 "destAddr":"Номер_Абонента",
6 "message": {
7 "type": "PUSH",
8 "data": {
9 "text": "Текст_сообщение",
10 "serviceNumber": "0000",
11 "ttl": 40,
12 "ttlUnit": "SECONDS",
13 "content": {
14 "contentCategory": "HTML",
15 "contentUrl": "https://i.pinimg.com/originals/11/ab/14/11ab147894a7d2ce866ff88a4aa63655.jpg"
16 }
17 }
18 }
19 }
Описание параметра deviceSubscriptions
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "externalUserId":"ИД_абонента",
10 "text":"Текст",
11 "serviceNumber":"Номер_отправителя",
12 "ttl":24,
13 "ttlUnit":"HOURS",
14 "deviceSubscriptions":[
15 "card"
16 ]
17 }
18 }
19 }
Описание параметра customPayload
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "title":"Заголовок Push-сообщения",
10 "text":"Текст_сообщения",
11 "serviceNumber":"Номер_отправителя",
12 "ttl":1,
13 "ttlUnit":"MINUTES",
14 "customPayload":{
15 "list":"card"
16 }
17 }
18 }
19 }
Описание параметра callbackData
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"8770631",
5 "destAddr":"Номер_Абонента",
6 "message":{
7 "type":"PUSH",
8 "data":{
9 "title":"Заголовок Push-сообщения",
10 "text":"Текст_сообщения",
11 "serviceNumber":"Номер_отправителя",
12 "ttl":1,
13 "ttlUnit":"MINUTES",
14 "callbackData":"Данные_для_статистики"
15 }
16 }
17 }
Параметры для альтернативного варианта отправки данных с контентом для мобильного приложения.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"4560",
5 "message":{
6 "type":"PUSH",
7 "data":{
8 "externalUserId":"ИД_абонента",
9 "title":"Заголовок_до",
10 "text":"Тест_до",
11 "serviceNumber":"Номер_отправителя",
12 "ttl":30,
13 "ttlUnit":"SECONDS",
14 "extraOptions":[
15 {
16 "param_name":"RICH",
17 "param_value":{
18 "title":"Заголовок_после",
19 "message":"Текст_после"
20 }
21 }
22 ]
23 }
24 }
25 }
Параметры для обновления виджета Live Activity на устройствах с операционной системой iOS.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"4560",
5 "message":{
6 "type":"PUSH",
7 "data":{
8 "externalUserId":"ИД_абонента",
9 "title":"Заголовок",
10 "text":"Текст",
11 "serviceNumber":"Номер_отправителя",
12 "ttl":30,
13 "ttlUnit":"SECONDS",
14 "Options":[
15 {
16 "param_name":"LIVE_ACTIVITY",
17 "param_value":{
18 "aps":{
19 "timestamp":"2024-03-29T17:23:47.720Z",
20 "event":"update",
21 "content-state":{
22 "deliveryStatus":2,
23 "deliveryTime":5
24 }
25 }
26 }
27 }
28 ]
29 }
30 }
31 }
Параметры для передачи чувствительных данных в push-уведомлении.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"4560",
5 "message":{
6 "type":"PUSH",
7 "data":{
8 "primaryOn":false,
9 "externalUserId":"ИД_абонента",
10 "title": "Код для получения %data%",
11 "text":"%name%, ваша карта с номером %card% готова к выпуску",
12 "serviceNumber":"Номер_отправителя",
13 "ttl":30,
14 "ttlUnit":"SECONDS",
15 "Options":[
16 {
17 "param_name":"SECURE",
18 "param_value":{
19 "name":"Имя",
20 "card":"*0000",
21 "data":"12345"
22 }
23 }
24 ]
25 }
26 }
27 }
Параметры для отправки push-уведомлений на определенные типы платформ (APNS, FCM, HMS, RuStore) по желанию партнера.
1 {
2 "login":"ВАШ_ЛОГИН",
3 "password":"ВАШ_ПАРОЛЬ",
4 "id":"1",
5 "message":{
6 "type":"PUSH",
7 "data":{
8 "serviceNumber":"Сервисное_имя_отправителя",
9 "externalUserId":"ИД_абонента",
10 "text":"Текст_сообщения",
11 "title":"Заголовок_сообщения",
12 "ttl":24,
13 "ttlUnit":"HOURS",
14 "Options":[
15 {
16 "param_name":"SENDING_PLATFORMS",
17 "param_value":[
18 "Android",
19 "Ios",
20 "RuStore"
21 ]
22 }
23 ]
24 }
25 }
26 }
Параметры запросов#
Обязательные параметры выделены жирным шрифтом.
Параметр |
Тип данных |
Описание |
---|---|---|
login |
string |
Имя Партнера в системе. |
password |
string |
Пароль Партнера в системе. |
extraParam |
string |
Дополнительные параметры, передаваемые в виде param1=value1,param2=value2,
где
Символ запятой в название параметра входить не может, но может входить
в его значение – в этом случае он должен удваиваться.
Пример: строка место=абзаково,название=гостевой дом-2,координаты=53.8085896,,
58.6362112,c=23.02.09,по=05.03.09.
|
useTimeDiff |
boolean |
Учитывание часового пояса при запуске рассылки.
Если true, то отправка сообщения осуществляется абоненту согласно
расписанию рассылки и его часовому поясу.
Если false, то сообщение отправляется согласно расписанию инициатора
рассылки UTC+3, без учёта часового пояса получателя сообщения.
Значение по умолчанию: false.
|
scheduleInfo |
object |
Расписание рассылки. Если не указано, отправляется сразу же, в момент
получения запроса.
|
scheduleInfo/timeBegin |
string |
Время начала, например, «10:00». |
scheduleInfo/timeEnd |
string |
Время окончания, например, «21:00». |
scheduleInfo/weekdaysSchedule |
string |
Дни рассылки. Задаются цифрами от 1 (понедельник) до 7 (воскресение),
например, «12345».
Если ограничений по дням недели нет, то данный параметр может быть пустой
или не передан в запросе.
|
scheduleInfo/deadline |
string |
Дата окончания рассылки, например, 2024-09-10T16:29:30+0300. |
id |
string |
Уникальный идентификатор на стороне Партнёра.
Данный параметр нужен для контроля повторных отправок и дублирования
(сервис контроля включается отдельно).
Партнёр может вызывать Сервис-провайдера (запрос на отправку сообщения)
с одним и тем же id несколько раз. При этом: отправка сообщения абоненту
будет выполнена только один раз (по первому запросу).
В ответах на запросы Сервис-провайдер вернет Партнёру один и тот же
идентификатор сообщения в системе Сервис-провайдера (тот же, что на
первый запрос).
Сервис-провайдер опционально возвращает Партнёру данный идентификатор
при его наличии в отчёте о доставке сообщения.
|
shortenLinks |
boolean |
Параметр управляет включением автоматического сокращения длинных ссылок
в сообщении.
Возможные значения:
Если параметр в запросе не приходит, но, при этом, сервис Партнёру доступен,
то ссылки будут сокращаться по умолчанию.
Подробнее: Сервис сокращения ссылок.
Примечание Возможность пользоваться данным сервисом предварительно оговаривается и настраивается Сервис-Провайдером. |
destAddr |
string |
Для Push-сообщений является обязательным при отсутствии параметра
message/data/externalUserId. Номер телефона абонента. Содержит код страны,
код оператора и номер телефона. Для РФ код может быть „8“, „7“ или „+7“.
Примеры номеров: 72101234567, +72101234567, 8-210-123-45-67, 82101234567.
|
message |
object |
Параметры отправляемого сообщения. |
message/type |
enum |
Тип сообщения. Передается значение PUSH. |
message/data |
object |
Параметры отправляемых данных. |
message/data/externalUserId |
string |
ID пользователя для отправки Push-сообщения (логин, email, UID). |
message/data/ttl |
integer |
Срок жизни сообщения. Допустимый диапазон, секунд: от 30 до 86400.
Примечания. При ttl = 0 или отсутствии параметра в запросе берётся значение
из настроек по умолчанию, которые задаются при настройке интеграции отдельно
для каждого клиента.
Если ttl не указан в данных местах, то запрос будет отклонён
системой и будет выведена ошибка.
|
message/data/ttlUnit |
enum |
Единица измерения периода доставки сообщения. Передается только вместе
с ttl.
Допустимые значения:
|
message/data/serviceNumber |
string |
Сервисное имя, от которого осуществляется отправка сообщения. |
message/data/text |
string |
Текст отправляемого сообщения. Количество символов: не более 1000. |
Запрос с заголовком title |
||
message/data/title |
string |
Заголовок для текстового сообщения. Количество символов, не более: 80. |
Запрос с признаком главного приложения primaryOn |
||
message/data/primaryOn |
boolean |
Признак главного приложения, установленного на устройство абонента. Возможные значения:
Если параметр отсутствует, то передается тоже на все устройства пользователя. |
registeredDelivery |
integer |
Необходимость отчётов о доставке.
Возможные значения:
|
notifyUrl |
string |
Hostname входящего api для получения отчета о доставке (см.
Сервис получения статусов доставки сообщений).
Этот параметр в запросе необязательный, но при его отправке нужно учесть
следующее:
При невыполнении любого из указанных условий будет сгенерирована ошибка,
запрос не будет выполнен.
|
Запрос с указанием категории содержимого (изображений, HTML-ссылок и кнопок) contentCategory |
||
message/data/content |
object |
Параметры для отправки изображений, HTML-ссылок и кнопок. |
message/data/content/ contentCategory |
enum |
Категория содержимого по ссылке contentUrl.
Возможные значения:
|
message/data/content/contentUrl |
string |
URL-адрес изображения или HTML. Максимальная длина ссылки, символов: 512.
Требования к изображению при contentCategory=IMAGE:
|
Запрос для отображения кнопок actions |
||
message/data/content/actions |
array |
Массив, в котором передаются кнопки с возможностью:
Описание атрибутов кнопки приведено ниже.
|
message/data/content/actions/ title |
string |
Надпись на кнопке. Количество символов, не более: 64. |
message/data/content/actions/ action |
string |
Текстовый идентификатор кнопки в мобильном приложении. Определяет действие,
которое будет выполняться при клике на кнопку. Параметр настраивается в
мобильном приложении.
Количество символов, не более: 64.
Допустимые значения:
|
message/data/content/actions/ options |
string |
Дополнительные параметры кнопки. Набор зависит от ОС, определяется
разработчиком мобильного приложения. Параметр настраивается в мобильном
приложении.
Количество символов, не более: 300.
В случае кнопки с action=link может быть указан URL-адрес для перехода.
|
Запрос с подписками deviceSubscriptions |
||
message/data/deviceSubscriptions |
array |
Передаваемый массив с перечнем подписок мобильного приложения. |
Запрос с данными для приложения customPayload |
||
message/data/customPayload |
JSON Object |
Данные, которые передаются в исходном виде для дальнейшей обработки на уровне клиентского приложения. |
Запрос с данными для статистики callbackData |
||
message/data/callbackData |
string |
Клиентские данные для статистики. При получении сохраняются в передаваемом виде, при необходимости возможен вывод в статистических данных. |
Запрос с обогащенными данными extraOptions |
||
message/data/extraOptions |
array |
Массив объектов дополнительных данных от партнера. Содержит два обязательных параметра: param_name и param_value. |
message/data/extraOptions/ param_name |
string |
Передача признака сообщения.
Возможные значения:
|
message/data/extraOptions/ param_value |
string |
В зависимости от переданного в param_name признака данные в param_value будут отличаться. |
param_name=RICH |
||
message/data/extraOptions/ param_value/title |
string |
Заголовок сообщения. Если приходит, то происходит подмена присланного заголовка или задается заголовок вместо пустого. |
message/data/extraOptions/ param_value/message |
string |
Текст сообщения. Если приходит в RICH, то происходит подмена присланного текста. |
message/data/extraOptions/ param_value/content-category |
string |
Тип контента. Если приходит, то заменяется вместе с url. Если URL пустой, то content-category игнорируется. |
message/data/extraOptions/ param_value/content-url |
string |
Ссылка для контента. Если не указан тип контента, то подставляется как url вместо присланного. Если url не присылается и типа контента не было прислано, то игнорируется. |
message/data/extraOptions/ param_value/custom-payload |
string |
Пользовательские данные. Если приходит, то заменяют присланные ранее или задаются новые данные, если не было прислано ранее. |
message/data/extraOptions/ param_value/actions |
array |
Список кнопок. Если приходят не пустые данные, то происходит замена присланного ранее контента. |
param_name=LIVE_ACTIVITY |
||
message/data/extraOptions/ param_value/aps/stale_date |
timestamp |
timestamp в формате ISO 860 — дата и время, когда Live Activity считается устаревшим. |
message/data/extraOptions/ param_value/aps/dismissal_date |
timestamp |
timestamp в формате ISO 8601 — дата и время, когда Live Activity закрывается на экране блокировки. После того, как виджет перестанет быть активным, он может еще 4 часа оставаться на экране блокировки, если его не закрыть. Чтобы закрыть сразу и не ждать, можно указать дату, которая уже прошла. |
message/data/extraOptions/ param_value/aps/timestamp |
timestamp |
timestamp в формате ISO 8601. |
message/data/extraOptions/ param_value/aps/event |
string |
Событие для обновления Live Activity, принимает следующие значения:
|
message/data/extraOptions/ param_value/aps/content_state |
object |
Данные, которые будут отображаться в виджете Live Activity.
Параметры передаются разработчиком виджета. Данный блок не валидируется.
В demo приложении реализовано:
|
param_name=SECURE |
||
message/data/extraOptions/ param_value |
string |
Наименования параметров с чувствительными данными (param_name=SECURE).
При отправке через облачных провайдеров чувствительные данные, передаваемые
в push-уведомлении, маскируются при помощи шаблонов (подстановки в тексте и
заголовке уведомления).
Требования к наименованию параметров с данными для подстановки:
* текст должен быть на латинице;
* использование спец. символов недопустимо.
На примере выше (запрос с обогащенными данными SECURE) в тексте и
заголовке сообщения указаны переменные %name%, %card% и %data%.
Соответственно, эти значения обязательно должны быть переданы в param_value
для дальнейшей подстановки.
|
param_name=SENDING_PLATFORMS |
||
message/data/extraOptions/ param_value |
string |
Перечень наименований провайдеров, на которые необходимо выполнить отправку
сообщений.
Возможные значения:
|
Ответ на запрос#
После отправки сообщения Сервис-провайдер синхронно возвращает ответ. В случае успешной отправки возвращается HTTP-code 200 OK.
Ответ при успешной отправке#
1 {
2 "mtNum": "7390612217"
3 "id": "8770599"
4 }
Параметр |
Тип данных |
Описание |
---|---|---|
mtNum |
string |
Идентификатор цепочки отправки, присваиваемый платформой Сервис-провайдера. |
id |
string |
Уникальный идентификатор на стороне Партнёра. Присутствует, если был передан при отправке. |
Ошибки при отправке#
Для ошибочных результатов HTTP-код ответа будет отличный от 200 (см. Коды ошибок отправки).
1 {
2 "error": {
3 "code": 1,
4 "description": "Service is unavailable"
5 }
6 }
Параметр |
Тип данных |
Описание |
---|---|---|
error |
object |
Информация об ошибке. |
error/code |
int |
Код ошибки. |
error/description |
string |
Краткое описание ошибки. |
extendedDescription |
string |
Подробное описание ошибки (необязательный параметр). |
Коды ошибок отправки#
Код |
Описание |
HTTP-код |
---|---|---|
1 |
Service is unavailable |
503 |
2 |
Invalid IP-address |
403 |
3 |
Too many connections |
429 |
4 |
Invalid request |
400 |
5 |
Invalid login |
401 |
6 |
Invalid password |
401 |
7 |
serviceNumber is not defined |
400 |
8 |
destAddr is not correct |
406 |
9 |
Message type is not correct |
406 |
10 |
Prohibited sending duplicates |
409 |
11 |
Invalid TTL |
406 |
100 |
100 |
500 |
Статусы доставки push-уведомлений#
Для получения статусов push-уведомлений необходимо настроить Сервис получения статусов доставки сообщений.