PUSH¶
Отправка¶
Для отправки push-уведомлений необходимо:
- Получить ID отправителя и доступ к Push API. Для этого необходимо обратиться в техническую поддержку.
- Вызвать POST /push/messages, передавая параметры уведомления в теле запроса и данные авторизации в заголовке.
Примечание
Для автоматической отправки push-уведомлений можно также использовать iOS, Android и Web SDK.
Параметры запроса¶
Параметр | Тип данных | Описание |
---|---|---|
from | integer | Согласованный ID отправителя. |
to | string | Токен устройства получателя. |
title | string | Заголовок уведомления. Максимальная длина - 200 символов. |
text | string | Текст уведомления. Максимальная длина - 1024 символа. |
priority | string | Приоритет отправки уведомления.
|
badge (optional) |
integer | Ключ, устанавливающий значение для бейджа приложения - значка с цифрой в верхнем углу иконки приложения. Цифра обозначает количество непрочитанных уведомлений в приложении. Можно задать любое целое число. |
validity (optional) |
integer | Срок жизни уведомления в секундах. Минимальное значение: 30 Максимальное значение: 86400, 1 сутки По умолчанию: 86400, 1 сутки |
platform (optional) |
string | Платформа или операционная система устройств, на которое будет прислано уведомление. Доступные значения: |
silentPush (optional) |
boolean | Если true , уведомление не будет отображаться на устройстве получателя. По умолчанию false . |
options (optional) |
string | Данные, которые будут указаны в коллбэке со статусом уведомления. Любой массив вида |
apns (optional) |
Apns | Специфические поля для устройств Apple. |
android (optional) |
Android | Специфические поля для устройств Android и Huawei. |
Внимание
Для отправки уведомления необходимо обязательно использовать один из объектов: Apns или Android.
Apns¶
Параметры уведомлений для устройств с ОС iOS.
Параметр | Тип данных | Описание |
---|---|---|
sound (optional) |
string | Звук push-уведомления на iOS. Поддерживает значение Поддерживаемые форматы: AIF, AIFF, WAV, MP3, MP4 |
buttons (optional) |
array[ActionButtons] | Включает в себя максимум 3 объекта кнопок. |
linkToMedia (optional) |
string | URL файла, прикрепляемого к уведомлению. Поддерживаемые форматы: |
image (optional) |
string | Имя файла изображения в комплекте приложения: с расширением имени файла или без него. Изображение отображается напрямую в уведомлении. Если параметр не указан, система использует изображение с ключом Поддерживаемые форматы: JPEG, GIF, PNG |
action (optional) |
string | URL/deep link для перехода при нажатии на уведомление. |
Android¶
Параметры уведомлений для устройств с ОС Android и Huawei.
Параметр | Тип данных | Описание |
---|---|---|
smallIcon (optional) |
string | Ссылка на иконку уведомления. Иконка будет отображаться в качестве превью в панели уведомления. Ссылка должна вести на иконку в основном пакете приложения. |
iconColor (optional) |
string | Цвет иконки уведомлений в формате #RRGGBB . |
sound (optional) |
string | Звук push-уведомления на Android. Поддерживает значение Поддерживаемые форматы: AIF/AIFF, WAV, MP3, MP4 |
buttons (optional) |
array[ActionButtons] | Включает в себя максимум 3 объекта кнопок. |
image (optional) |
string | Имя файла изображения в комплекте приложения: с расширением имени файла или без него. Изображение отображается напрямую в уведомлении. Если параметр не указан, система использует изображение, идентифицированное ключом Поддерживаемые форматы: JPEG, GIF, PNG |
androidChannelId (optional) |
string | ID канала уведомления. |
tag (optional) |
string | ID для отбора пользователей. Используется для тегирования абонентов в базах клиентов в FireBase. |
collapseKey (optional) |
string | При получении уведомлений с одинаковым collapseKey , Firebase Cloud Messaging (FCM) заменяет более старое уведомление на новое. |
action (optional) |
string | URL/deep link для перехода при нажатии на уведомление. |
ActionButtons¶
Параметр | Тип данных | Описание |
---|---|---|
icon (optional) |
string | URL иконки уведомления. Используется только для Android. Поддерживаются форматы иконок: 24x24, 36x36, 48x48, 72x72, 96x96 |
caption (optional) |
string | Название кнопки. Максимальная длина - 30 символов. |
action (optional) |
string | URL/deep link для перехода при нажатии на кнопку в уведомлении. |
Пример запроса¶
[
{
"from":400,
"to":"r0Fo0EjfqKjTeZZpPW4s63PpMEYpgKIj55DT",
"title":"title",
"text":"Hello",
"badge":1,
"validity":86400,
"priority":"MEDIUM",
"options":{
"name":"Иван",
"phone":"79169492211"
},
"apns":{
"linkToMedia":"Default.png",
"sound":"hi.mp3",
"action":"https://test.com/apple-app-site-association"
},
"android":{
"iconColor": "#2F2F2F",
"sound":"hi.mp3",
"action":"https://test.com/android-app-site-association"
}
}
]
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
index | integer | Порядковый номер получателя из массива уведомлений. |
pushToken | string | Токен устройства получателя. |
pushId | integer | ID уведомления. Указывается только при "code": "ok" . |
code | string | Указывает на результат обработки уведомления. 1. ok - успешно обработано.2. validation_error - ошибка валидации уведомления. |
description | array | Массив ошибок, произошедших во время обработки уведомления. Указывается только при "code": "validation_error" . |
description.errorMessage | string | Сообщение с описанием ошибки. |
Примеры ответов¶
{
"result": [
{
"index": 0,
"pushToken": "IOvpeJ0ECENA3WrrRHG1ghopWkVgiFNLSWWZoqLAUgIllcDF3j19ay9-0-Nanfo-0VjrnA1G6CGSvE_TyRUaea7mXmDUapY3YA",
"pushId": 3703545281276230700,
"code": "ok"
}
]
}
{
"result": [
{
"index": 0,
"pushToken": "IOvpeJ0ECENA3WrrRHG1ghopWkVgiFNLSWWZoqLAUgIllcDF3j19ay9-0-Nanfo-0VjrnA1G6CGSvE_TyRUaea7mXmDUapY3YA",
"code": "validation_error",
"description": [
{
"errorMessage": "Неизвестный from"
}
]
}
]
}
Коллбэки¶
Как подключить
Для настройки коллбэков со статусами push-уведомлений необходимо обратиться к менеджеру компании или в техническую поддержку.
Возможные статусы¶
Статус | Описание |
---|---|
accepted | Уведомление было принято на доставку. |
send | Уведомление отправлено в службу уведомлений устройства. |
delivered | Уведомление доставлено до устройства. |
opened | Был переход по ссылке из уведомления. |
rejected | Уведомление отклонено. |
canceled | Получатель смахнул уведомление с экрана. |
expired | Уведомление не было доставлено за отведенное время. |
unsubscribed | Пользователь отключил уведомления. |
Пример коллбэка¶
[
{
"messageId": 1,
"ts": 1636976602504,
"status": "delivered",
"errorCode": 0,
"options": "string"
}
]
Детализация¶
Для получения детальных сведений об отправленных уведомлениях необходимо вызвать GET /push-statistics/statistics/detail, передавая параметры фильтров и данные авторизации в заголовке.
Параметры запроса¶
Параметр | Тип данных | Описание |
---|---|---|
limit | integer | Количество уведомлений в результатах поиска. |
offset | integer | Смещение результатов поиска. То есть, к примеру, если в параметре будет указано число 5 , полученный массив уведомлений будет отображаться, начиная с 5 позиции. |
taskId (optional) |
integer | ID рассылки, по которой нужно получить детализацию. Можно узнать при создании сценария рассылки. Используется в обязательной комбинации параметров. |
triggerId (optional) |
integer | ID триггера рассылки. Можно узнать при получении сценария рассылки. Используется в обязательной комбинации параметров. |
dateTimeFrom (optional) |
datetime | Дата начала поиска уведомлений. Используется в обязательной комбинации параметров. Формат YYYY-MM-DDThh:mm:ss . |
dateTimeTo (optional) |
datetime | Дата окончания поиска уведомлений. Используется в обязательной комбинации параметров. Формат YYYY-MM-DDThh:mm:ss . |
messageIds (optional) |
array[integer] | ID уведомлений, по которым нужно получить детализацию. Используется в обязательной комбинации параметров. |
applicationId (optional) |
integer | ID приложения в Devino.Online, откуда отправляются push-уведомления. |
order (optional) |
string | В каком порядке выводить результаты запроса. Возможные значения: |
selectionField (optional) |
string | Поле, по которому будут отсортированы результаты запроса. |
outFields (optional) |
array[string] | Поля в результатах поиска. Неуказанные в этом параметре поля будут исключены. |
recipient (optional) |
string | Номер телефона получателя. |
status (optional) |
string | Статус уведомлений в результатах поиска. Возможные значения: |
timeOffset (optional) |
integer | Часовой пояс получателя. Формат - смещение в минутах, например, 180 для Москвы (GMT+3). |
userId (optional) |
integer | ID пользователя, проводившего рассылку. |
Комбинации параметров¶
Для корректной работы метода в запросе необходимо использовать одну из этих комбинаций параметров в соответствии со списком:
- ID рассылки:
taskId
- ID рассылки и триггера:
taskId
,triggerId
- Даты начала и окончания поиска уведомлений:
dateTimeFrom
,dateTimeTo
- ID рассылки, триггера; даты начала и окончания поиска уведомлений:
taskId
,triggerId
,dateTimeFrom
,dateTimeTo
- ID уведомлений:
messageIds
Поля для параметров selectionField
и outFields
¶
Используются в параметрах selectionField
для сортировки результатов поиска и outFields
для отбора полей.
Название поля | Описание |
---|---|
APPLICATION_ID | ID приложения в Devino.Online, откуда отправляются push-уведомления. |
APPLICATION_NAME | Название приложения. |
BODY | Текст push-уведомления. |
BUTTONS | Информация о кнопках (объект ActionButtons) в push-уведомлении. |
COMPANY_ID | ID компании. |
COMPANY_NAME | Название компании. |
CUSTOM_DATA | Значение параметра options при отправке уведомления. |
DEEP_LINK | URL/deep link для перехода при нажатии на уведомление. |
EVENT_DATE_TIME | Дата и время последнего обновления статуса уведомления. |
MEDIA_FILE | URL изображения, прикрепленного к уведомлению. В ответе на запрос обозначен как параметр image . |
MESSAGE_ID | ID уведомления. |
PRICE | Стоимость уведомления. |
RECIPIENT | Push-токен получателя. |
SEND_ROUTE | Маршрут, по которому было отправлено уведомление. |
SENT_DATE_TIME | Дата и время отправки. |
STATUS | Статус уведомления из личного кабинета Devino.Online. |
STATUS_DETAILS | Статус уведомления из базы данных. |
TASK_ID | ID рассылки. |
TASK_NAME | Название рассылки. |
TASK_TYPE | Тип рассылки. |
TITLE | Заголовок push-уведомления. |
TRIGGER_CONTACT_GROUP | Название списка контактов, по которому проходила рассылка. В ответе на запрос будет обозначен как параметр list . |
TRIGGER_SEGMENT | Название сегмента списка контактов, по которому проходила рассылка. В ответе на запрос обозначен как параметр segment . |
TRIGGER_ID | ID триггера рассылки. |
USER_ID | ID пользователя, отправившего уведомление. |
USER_LOGIN | Логин пользователя, отправившего уведомление. |
Примеры запросов¶
curl -X GET https://api.devino.online/push-statistics/statistics/detail?dateTimeFrom=2023-02-12T00:00:00&dateTimeTo=2023-02-24T00:00:00&limit=20&offset=1
-H 'Authorization: Key QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
curl -X GET https://api.devino.online/push-statistics/statistics/detail?taskId=8742&triggerId=2312&limit=20&offset=1
-H 'Authorization: Key QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
data | array[object] | Массив объектов с детальной информацией по каждому уведомлению. Параметры определяются полями, которые были заданы в изначальном запросе. Также появляются дополнительные параметры. |
size | integer | Количество элементов на странице и уведомлений в результатах поиска. Задается параметром limit . |
offset | integer | Смещение результатов поиска. То есть, к примеру, если в параметре будет указано число 5 , полученный массив уведомлений будет отображаться, начиная с 5 позиции. |
number | integer | Номер полученной страницы. Определяется параметром ○ Если значение параметра ○ Если ○ Если |
pageExists | boolean | Существует ли отображаемая страница. |
total | integer | Общее количество уведомлений, по которым можно получить детализацию. |
pages | integer | Общее количество страниц, по которым можно получить детализацию. Определяется целочисленным делением параметра total на limit (total / limit ). |
more | boolean | Индикатор: существуют ли страницы после текущей, указанной в параметре number . |
Data¶
Параметр | Тип данных | Описание |
---|---|---|
recipientPlatform | string | Платформа или операционная система устройства, на которое было прислано уведомление. Доступные значения: |
isListDeleted | boolean | Удален ли список контактов, контакту которого было отправлено уведомление. |
isSegmentDeleted | boolean | Удален ли сегмент списка контактов, контакту которого было отправлено уведомление. |
Пример ответа¶
{
"result": {
"offset": 1000,
"number": 21,
"size": 50,
"pageExists": true,
"data": [
{
"messageId": "234567865432456787634",
"applicationId": 111,
"applicationName": "App",
"taskId": "11111",
"taskName": "task",
"taskType": "SIMPLE",
"triggerId": "11111111",
"list": "Contact_list",
"isListDeleted": false,
"segment": "Segment",
"isSegmentDeleted": false,
"recipient": "71110000999:APA91bFdDBjCi_6sePNogM3eJ...",
"sentDateTime": "2022-12-14 05:55:32",
"status": "UNDELIVERED",
"statusDetails": "REJECTED",
"eventDateTime": "2022-12-14 05:54:52",
"companyId": 234,
"companyName": "MyCompany",
"userId": 88,
"userLogin": "79991112233",
"price": "1.0000",
"body": "Notification text",
"title": "Notification title",
"recipientPlatform": "FIREBASE",
"image": "https://devinotele.com/media.jpg",
"deepLink": "http://devinotele.com",
"actionButtons": [
{
"buttonName": "PUSH ME 1",
"buttonUrl": "1"
},
{
"buttonName": "PUSH ME 2",
"buttonUrl": "2"
},
{
"buttonName": "PUSH ME 3",
"buttonUrl": "3"
}
],
"customData": {
"OMNI": {
"contactId": "21dfswarfsg3423ede2",
"triggerId": 11111111,
"taskId": 11111
}
}
},
...
],
"more": true,
"pages": 100,
"total": 1000
}
}
Статистика уведомлений¶
Для получения общей статистики по статусам уведомлений необходимо вызвать GET /push-statistics/statistics/of-group, передавая параметры фильтров и данные авторизации в заголовке.
Параметры запроса¶
Параметр | Тип данных | Описание |
---|---|---|
groupBy | string | Группировка результатов: |
startDate | datetime | Дата начала периода сбора статистики. Формат - YYYY-MM-DDThh%3Amm%3Ass . |
endDate | datetime | Дата окончания периода сбора статистики. Формат - YYYY-MM-DDThh%3Amm%3Ass . |
taskId (optional) |
integer | ID рассылки, по которой нужно получить статистику. |
triggerId (optional) |
integer | ID триггера рассылки, по которому нужно получить статистику. |
timeOffset (optional) |
integer | Часовой пояс получателя. Формат - смещение в минутах, например, 180 для Москвы (GMT +3). |
Пример запроса¶
curl -X GET https://api.devino.online/push-statitics/statistics/of-group?startDate=2022-10-06T13%3A45%3A30&endDate=2023-02-06T13%3A45%3A30&groupBy=MONTH
-H 'Authorization: Key QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
Параметры ответа¶
Параметр | Тип данных | Описание |
---|---|---|
messages | array[MessageStatusObject] | Количество уведомлений по выбранному периоду, сгруппированных по статусам. |
MessageStatusObject¶
Объект содержит информацию о количестве уведомлений со статусами:
Код | Описание |
---|---|
accepted | Уведомление было принято на доставку. |
send | Уведомление отправлено в службу уведомлений устройства. |
delivered | Уведомление доставлено до устройства. |
opened | Был переход по ссылке из уведомления. |
rejected | Уведомление отклонено. |
canceled | Получатель смахнул уведомление с экрана. |
expired | Уведомление не было доставлено за отведенное время. |
unsubscribed | Пользователь отключил уведомления. |
Каждый статус включает в себя параметры:
Параметр | Тип данных | Описание |
---|---|---|
date | string | Дата сбора статистики в зависимости от значения параметра groupBy . |
amount | integer | Количество уведомлений. |
Пример ответа¶
{
"result": {
"messages": {
"accepted": [],
"send": [
{
"date": "2022-09-01 00:00:00",
"amount": 11
},
{
"date": "2022-10-01 00:00:00",
"amount": 24
},
{
"date": "2023-01-01 00:00:00",
"amount": 2
}
],
"delivered": [
{
"date": "2023-01-01 00:00:00",
"amount": 2
}
],
"opened": [
{
"date": "2022-10-01 00:00:00",
"amount": 49
},
{
"date": "2022-09-01 00:00:00",
"amount": 23
},
{
"date": "2022-11-01 00:00:00",
"amount": 1
}
],
"rejected": [],
"canceled": [],
"expired": [],
"unsubscribed": []
}
}
}