Перейти к основному содержимому
Версия: 1.34.0

SimplePushNotification

Этот класс содержит методы для формирования и отправки пуш-уведомлений от системы SimpleOne в браузеры пользователей.

Определение получателей

Для отправки уведомления необходимо задать хотя бы одного получателя с помощью метода setRecipientUserIds() или setRecipientGroupIds(). Если указанный пользователь входит в одну или несколько указанных групп, система создает для него одну запись получателя. Одно уведомление может иметь не более 1000 уникальных получателей.

setRecipientUserIds(userIds)


Используйте этот метод, чтобы задать получателей пуш-уведомлений с помощью ID пользователей. Повторные вызовы метода перезаписывают значение.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
userIdsArray of StringsДаНет

Возвращаемое значение:

ТипОписание
BooleanВозвращает true, если значение принято. При недопустимом значении возвращает false.

Пример:

setRecipientUserIds()
let webpush = new SimplePushNotification();
webpush.setRecipientUserIds(['155931135900000001','155931135900000032']);

setRecipientGroupIds(groupIds)


Используйте этот метод, чтобы задать получателей пуш-уведомлений с помощью ID групп. Повторные вызовы метода перезаписывают значение.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
groupIdsArray of StringsДаНет

Возвращаемое значение:

ТипОписание
BooleanВозвращает true, если значение принято. При недопустимом значении возвращает false.

Пример:

setRecipientGroupIds()
let webpush = new SimplePushNotification();
webpush.setRecipientGroupIds(['177068186608977300']);

Определение содержимого и поведения уведомления

внимание

Методы setTitle(title) и setBody(body) обязательны при создании пуш-уведомления. Они не должны быть Empty или Null.

setTitle(title)


Используйте этот метод, чтобы установить заголовок пуш-уведомления. Длина заголовка не должна превышать 35 символов. Если значение превышает 35 символов, оно обрезается.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
titleStringДаНет

Возвращаемое значение:

ТипОписание
BooleanВозвращает true, если значение принято без изменений. Если значение отсутствует, имеет недопустимый тип или было сокращено до 35 символов, возвращает false.

Пример:

setTitle()
let webpush = new SimplePushNotification();
webpush.setTitle('Title Text');

setBody(body)


Используйте этот метод, чтобы установить основной текст пуш-уведомления. Длина основного текста не должна превышать 255 символов. Если значение превышает 255 символов, оно обрезается.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
bodyStringДаНет

Возвращаемое значение:

ТипОписание
BooleanВозвращает true, если значение принято без изменений. Если значение отсутствует, имеет недопустимый тип или было сокращено до 255 символов, возвращает false.

Пример:

setBody()
let webpush = new SimplePushNotification();
webpush.setBody('Notification body text');

setIconUrl(iconUrl)


Используйте этот метод, чтобы отобразить в пуш-уведомлении иконку, URL которой передан в параметре iconUrl. Значение по умолчанию задается системным свойством push_notifications.default_icon_url.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
iconUrlStringДаhttps://simpleone.ru/favicon/favicon.ico

Возвращаемое значение:

ТипОписание
BooleanПри установке недопустимого значения iconUrl метод возвращает false.

Пример:

setIconUrl()
let webpush = new SimplePushNotification();
webpush.setIconUrl('https://simpleone.ru/favicon/favicon.ico')

setUrl(linkUrl)


Используйте этот метод, чтобы задать URL для перехода при клике пользователя по пуш-уведомлению.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
linkUrlStringДаНет

Возвращаемое значение:

ТипОписание
BooleanПри установке недопустимого значения linkUrl метод возвращает false.

Пример:

setUrl()
let webpush = new SimplePushNotification();
webpush.setUrl('https://your-instance.simpleone.ru/');

setUrgency(severity)


Используйте этот метод, чтобы установить уровень важности пуш-уведомления.

Если значение не установлено или некорректно, используется значение системного свойства push_notifications.default_urgency. Если это свойство не существует, не задано или задано некорректно, используется значение, установленное в свойствах колонки Срочность таблицы Пуш-уведомления (sys_push_notification).

Параметры:

НазваниеТипОбязательныйДопустимые значенияЗначение по умолчанию
severityStringДа
  • very-low
  • low
  • normal
  • high
normal

Возвращаемое значение:

ТипОписание
BooleanПри установке недопустимого значения severity метод возвращает false.

Пример:

setUrgency()
let webpush = new SimplePushNotification();
webpush.setUrgency('normal');

setTtl(ttl)


Используйте этот метод, чтобы установить срок жизни пуш-уведомления в секундах. Максимальное значение: 2419200.

Если значение некорректно (не является целым числом от 0 до 2419200) или не установлено, то используется значение push_notifications.default_ttl. Если это свойство не существует, не задано или задано некорректно, используется значение, установленное в свойствах колонки Срок жизни таблицы Пуш-уведомления (sys_push_notification).

Параметры:

НазваниеТипОбязательныйДопустимые значенияЗначение по умолчанию
ttlIntegerДаОт 0 до 2419200 включительно86400

Возвращаемое значение:

ТипОписание
BooleanПри установке недопустимого значения ttl метод возвращает false.

Пример:

setTtl()
let webpush = new SimplePushNotification();
webpush.setTtl(86400);

setInteraction(interaction)


Используйте этот метод, чтобы установить необходимость клика по пуш-уведомлению, чтобы его скрыть.

Параметры:

НазваниеТипОбязательныйДопустимые значенияЗначение по умолчанию
interactionBooleanДа
  • true
  • false
Нет

Возвращаемое значение:

ТипОписание
BooleanПри установке недопустимого значения interaction метод возвращает false.

Пример:

setInteraction()
let webpush = new SimplePushNotification();
webpush.setInteraction(true);

Получение данных и валидация

getJson()


Используйте метод, чтобы получить текущие значения экземпляра класса SimplePushNotification.

Метод не принимает параметры.

Возвращаемое значение:

ТипОписание
StringСериализованная JSON-строка, содержащая текущие значения полей экземпляра класса.

Пример:

getJson()
const webpush = new SimplePushNotification();

webpush.setTitle('Запрос обработан');
webpush.setBody('Ваш запрос обработан');

ss.info(webpush.getJson());

validate()


Используйте метод, чтобы выполнить валидацию текущих значений экземпляра SimplePushNotification без отправки уведомления.

Метод не принимает параметры.

Возвращаемое значение:

ТипОписание
StringСериализованная JSON-строка, содержащая результаты валидации полей экземпляра класса.

Строка результата может содержать следующие сообщения:

СообщениеПоляУсловие
The parameter does not contain a valuetitle, bodyОбязательное значение отсутствует.
Some values are incorrectuserIds, groupIdsМассив содержит некорректные идентификаторы.
The parameter contains an invalid valueurl, ttl, iconUrl, urgency, interactionЗначение не соответствует типу, формату или допустимому диапазону.
The parameter value has been truncatedtitle, bodyЗначение было сокращено до максимально допустимой длины.
userID or groupID must be completedrecipientsНе заданы допустимые пользователи или группы получателей.

Пример:

validate()
const webpush = new SimplePushNotification();

webpush.setTitle('Запрос обработан');
webpush.setBody('Ваш запрос обработан');

ss.info(webpush.validate());

Отправка пуш-уведомления

send()


Используйте этот метод для логической отправки пуш-уведомления.

Перед логической отправкой система выполняет валидацию параметров. Если обязательные параметры не заданы или заданы некорректно, то:

  • логическая отправка не выполняется;
  • создается соответствующая запись в Системном журнале (sys_log).

Возвращаемое значение:

ТипОписание
StringПри успешной логической отправке возвращает ID (sys_id) созданной записи из таблицы Пуш-уведомления (sys_push_notification). В противном случае возвращает false.

Пример

SimplePushNotification
let webpush = new SimplePushNotification();

webpush.setTitle('Запрос обработан');
webpush.setBody('Ваш запрос обработан');
webpush.setIconUrl('https://simpleone.ru/favicon/favicon.ico')
webpush.setUrl('https://your-instance.simpleone.ru/');
webpush.setInteraction(true);
webpush.setUrgency('normal');
webpush.setTtl(86400);
webpush.setRecipientUserIds(['155931135900000001']);
webpush.setRecipientGroupIds(['177068186608977300']);

ss.info(webpush.getJson());

const validate = webpush.validate();
ss.info(validate);

const id = webpush.send()
ss.info(id);