Параметры push-уведомлений
Для автоматической обработки и отображения push-уведомлений Ваше приложение должно быть осведомлено о возможных типах уведомлений и об аргументах, присылаемых в этих уведомлениях. Звёздочкой отмечены названия обязательных параметров.
Типы данных
| Тип | Описание |
|---|---|
Double |
Вещественный тип числа. |
Long/Int |
Целочисленный тип. |
String |
Строковый тип. |
Enum |
Значение из списка возможных (строковый тип). |
Array<*> |
Список значений (массив). |
Уведомление
| Название параметра | Тип | Пример | Описание |
|---|---|---|---|
type* |
Enum |
P.OM |
Тип push-уведомления. Возможные значения: P.OM, P.OF, P.CR, P.OA, P.WM |
event* |
Enum |
add |
Действие push-уведомления. Возможные значения: add, del |
message |
Представление типа JSON (см. message) |
message={ |
Сообщение push-уведомления. Обязателен, если type – P.OM, P.OF, P.CR. |
params |
Array |
["Никита К","1232"] |
Параметры push-уведомления. Обязателен, если type – P.OA, P.OM, P.OF:
|
Возможные значения параметра loc-key (iOS) и type (Android):
-
P.CRозначает, что оператор прислал запрос контактных данных. -
P.OAозначает, что оператор взял чат в обработку. -
P.OFозначает, что оператор прислал файл. -
P.OMозначает, что оператор прислал сообщение. -
P.ROозначает, что необходимо оценить оператора. -
P.WMозначает, что оператор прислал виджет (для включения данной функциональности необходимо обратиться в службу поддержки).
Значения массива аргументов — параметр loc-args (iOS) и params (Android):
-
Для
P.CR– массив пустой. -
Для
P.OA– массив из одного элемента: имя оператора. -
Для
P.OF– массив из двух элементов: имя оператора, название файла. -
Для
P.OM– массив из двух элементов: имя оператора, текст сообщения. -
Для
P.RO– массив пустой. -
Для
P.WM– массив содержит информацию о виджете (для включения данной функциональности необходимо обратиться в службу поддержки).
Данные параметры приходят без названий, порядок в массиве важен.
Возможные значения параметра event (Android)
-
add– push-уведомление необходимо показать -
del– push-уведомление необходимо удалить
Если push-уведомление имеет тип P.OF или P.OM, то параметр message содержит в себе сообщение, в ином случае этого параметра нет.
message
| Название параметра | Тип | Пример | Описание |
|---|---|---|---|
name* |
String |
Никита К |
Имя автора сообщения. |
avatar* |
String |
/webim/images/avatar/wmtest2_181510.png |
URL аватара автора сообщения. |
kind* |
Enum |
operator |
Тип сообщения. Возможные типы: operator, file_operator, cont_req. |
clientSideId* |
String |
03ef89e10352b87809e67f74504c4bb6 |
ID сообщения. |
ts* |
Double |
1.531582962567873E9 |
Время сообщения в микросекундах. |
text* |
String |
Текст сообщения |
Текст сообщения или строковое представление формата JSON с файлом, сериализованное в строку. |
text
| kind | Тип | Пример | Описание |
|---|---|---|---|
operator |
String |
Здравствуйте, чем я могу Вам помочь? |
Текстовое сообщение оператора. |
file_operator |
String |
См. описание параметра | Сообщение с файлом от оператора, содержащее сериализированный JSON. |
cont_req |
String |
Введите, пожалуйста, Вашу контактную информацию. |
Сообщение с запросом контактной информации. |
file_operator
| Параметр | Тип | Пример | Описание |
|---|---|---|---|
is_voice |
Boolean |
False |
Параметр, указывающий является ли сообщение голосовым. |
client_content_type |
String |
image/jpeg |
Content type файла, указанный при отправке фронтэндом. |
image.size.width |
Int |
1125 |
Ширина изображения в пикселях. |
image.size.length |
Int |
2000 |
Высота изображения в пикселях. |
visitor_id |
String |
fbd431f77834ba107b120cfa07fec70d |
Идентификатор посетителя в guid-формате. |
filename |
String |
3_(3).jpg |
Название файла. |
content-type |
String |
image/jpeg |
Content type файла, распознанный при анализе файла. |
guid |
String |
4bfc1ae213b84cd586abc2c787b87a8e |
Идентификатор файла. |
size |
Int |
176001 |
Размер файла в байтах. |
image
| Название параметра | Тип | Пример | Описание |
|---|---|---|---|
size* |
Представление типа JSON (см. size) |
{"width": 300, "height": 300} |
Размеры превью изображения. |
size
| Название параметра | Тип | Пример | Описание |
|---|---|---|---|
width* |
Int |
300 |
Ширина превью изображения. |
height* |
Int |
300 |
Высота превью изображения. |
В уведомлениях в iOS используются в основном те же параметры. Среди специфических для этой платформы упомянем:
| Название параметра | Тип | Пример | Описание |
|---|---|---|---|
loc-key* |
String |
P.OM |
Тип уведомления. |
loc-args |
Array |
Массив с параметрами (см. выше). | Параметры push-уведомления. Обязателен, если type – P.OA, P.OM, P.OF:
|
sound |
String |
default |
Звук уведомления. |
webim* |
Int |
1 |
Параметр для идентификации приложения. Всегда равен 1. |
Примеры для FCM Android
Оператор взял чат в обработку:
{params=["Никита К"], type=P.OA, event=add}
Пришло сообщение:
{
params=[
"Никита К",
"1232"
],
type=P.OM,
event=add,
message={
"kind": "operator",
"clientSideId": "03ef89e10352b87809e67f74504c4bb6",
"name": "Никита К",
"avatar": "/webim/images/avatar/wmtest2_181510.png",
"text": "1232",
"ts": 1.531582962567873E9
}
}
Пришёл файл:
{
params= [
"Никита К",
"p.jpg"
],
type=P.OF,
event=add,
message= {
"kind": "file_operator",
"clientSideId": "a49529502be8482ba9134756c4a4a211",
"name": "Никита К",
"avatar": "/webim/images/avatar/wmtest2_181510.png",
"text": {
"client_content_type": "image/jpeg",
"image": {
"size": {
"width": 300,
"height": 300
}
},
"visitor_id": "1b0c5d865529418a91f728c525b6d9fd",
"filename": "p.jpg",
"content_type": "image/jpeg",
"guid": "ac741895c19a47078bc54f722951957f",
"size": 53323
},
"ts": 1.531584932619524E9
}
}
Оператор запросил контактные данные:
{
params=[
],
type=P.CR,
event=add,
message={
"kind": "cont_req",
"clientSideId": "525a9cd6c49a46de90ca4c9016681b56",
"name": "Никита К",
"avatar": "/webim/images/avatar/wmtest2_181510.png",
"text": "Please enter your contact information.",
"ts": 1.531584937099446E9
}
}
Пример для APNs iOS
Пример push-уведомления для iOS:
{
"aps": {
"alert": {
"loc-key": "P.OM",
"loc-args": ["Имя Оператора", "Сообщение"]
},
"sound": "default",
},
"webim": 1
}
N.B.
В зависимости от типа сообщения, в коде push-уведомления для iOS изменяются только значения loc-key и loc-args.
Пример для Huawei Push Kit
Пример push-уведомления для Huawei может выглядеть следующим образом:
{
"validate_only": false,
"token": "токен",
"data": {
"pushtype": 1,
"pushbody": Стандартное тело для push-уведомления Android
}
}