SimplePushNotification
Этот класс содержит методы для формирования и отправки пуш-уведомлений от системы SimpleOne в браузеры пользователей.
Определение получателей
Для отправки уведомления необходимо задать хотя бы одного получателя с помощью метода setRecipientUserIds() или setRecipientGroupIds(). Если указанный пользователь входит в одну или несколько указанных групп, система создает для него одну запись получателя. Одно уведомление может иметь не более 1000 уникальных получателей.
setRecipientUserIds(userIds)
Используйте этот метод, чтобы задать получателей пуш-уведомлений с помощью ID пользователей. Повторные вызовы метода перезаписывают значение.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| userIds | Array of Strings | Да | Нет |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| Boolean | Возвращает true, если значение принято. При недопустимом значении возвращает false. |
Пример:
let webpush = new SimplePushNotification();
webpush.setRecipientUserIds(['155931135900000001','155931135900000032']);
setRecipientGroupIds(groupIds)
Используйте этот метод, чтобы задать получателей пуш-уведомлений с помощью ID групп. Повторные вызовы метода перезаписывают значение.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| groupIds | Array of Strings | Да | Нет |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| Boolean | Возвращает true, если значение принято. При недопустимом значении возвращает false. |
Пример:
let webpush = new SimplePushNotification();
webpush.setRecipientGroupIds(['177068186608977300']);
Определение содержимого и поведения уведомления
Методы setTitle(title) и setBody(body) обязательны при создании пуш-уведомления. Они не должны быть Empty или Null.
setTitle(title)
Используйте этот метод, чтобы установить заголовок пуш-уведомления. Длина заголовка не должна превышать 35 символов. Если значение превышает 35 символов, оно обрезается.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| title | String | Да | Нет |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| Boolean | Возвращает true, если значение принято без изменений. Если значение отсутствует, имеет недопустимый тип или было сокращено до 35 символов, возвращает false. |
Пример:
let webpush = new SimplePushNotification();
webpush.setTitle('Title Text');
setBody(body)
Используйте этот метод, чтобы установить основной текст пуш-уведомления. Длина основного текста не должна превышать 255 символов. Если значение превышает 255 символов, оно обрезается.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| body | String | Да | Нет |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| Boolean | Возвращает true, если значение принято без изменений. Если значение отсутствует, имеет недопустимый тип или было сокращено до 255 символов, возвращает false. |
Пример:
let webpush = new SimplePushNotification();
webpush.setBody('Notification body text');
setIconUrl(iconUrl)
Используйте этот метод, чтобы отобразить в пуш-уведомлении иконку, URL которой передан в параметре iconUrl. Значение по умолчанию задается системным свойством push_notifications.default_icon_url.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| iconUrl | String | Да | https://simpleone.ru/favicon/favicon.ico |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| Boolean | При установке недопустимого значения iconUrl метод возвращает false. |
Пример:
let webpush = new SimplePushNotification();
webpush.setIconUrl('https://simpleone.ru/favicon/favicon.ico')
setUrl(linkUrl)
Используйте этот метод, чтобы задать URL для перехода при клике пользователя по пуш-уведомлению.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| linkUrl | String | Да | Нет |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| Boolean | При установке недопустимого значения linkUrl метод возвращает false. |
Пример:
let webpush = new SimplePushNotification();
webpush.setUrl('https://your-instance.simpleone.ru/');
setUrgency(severity)
Используйте этот метод, чтобы установить уровень важности пуш-уведомления.
Если значение не установлено или некорректно, используется значение системного свойства push_notifications.default_urgency. Если это свойство не существует, не задано или задано некорректно, используется значение, установленное в свойствах колонки Срочность таблицы Пуш-уведомления (sys_push_notification).
Параметры:
| Название | Тип | Обязательный | Допустимые значения | Значение по умолчанию |
|---|---|---|---|---|
| severity | String | Да |
| normal |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| Boolean | При установке недопустимого значения severity метод возвращает false. |
Пример:
let webpush = new SimplePushNotification();
webpush.setUrgency('normal');
setTtl(ttl)
Используйте этот метод, чтобы установить срок жизни пуш-уведомления в секундах. Максимальное значение: 2419200.
Если значение некорректно (не является целым числом от 0 до 2419200) или не установлено, то используется значение push_notifications.default_ttl. Если это свойство не существует, не задано или задано некорректно, используется значение, установленное в свойствах колонки Срок жизни таблицы Пуш-уведомления (sys_push_notification).
Параметры:
| Название | Тип | Обязательный | Допустимые значения | Значение по умолчанию |
|---|---|---|---|---|
| ttl | Integer | Да | От 0 до 2419200 включительно | 86400 |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| Boolean | При установке недопустимого значения ttl метод возвращает false. |
Пример:
let webpush = new SimplePushNotification();
webpush.setTtl(86400);
setInteraction(interaction)
Используйте этот метод, чтобы установить необходимость клика по пуш-уведомлению, чтобы его скрыть.
Параметры:
| Название | Тип | Обязательный | Допустимые значения | Значение по умолчанию |
|---|---|---|---|---|
| interaction | Boolean | Да |
| Нет |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| Boolean | При установке недопустимого значения interaction метод возвращает false. |
Пример:
let webpush = new SimplePushNotification();
webpush.setInteraction(true);
Получение данных и валидация
getJson()
Используйте метод, чтобы получить текущие значения экземпляра класса SimplePushNotification.
Метод не принимает параметры.
Возвращаемое значение:
| Тип | Описание |
|---|---|
| String | Сериализованная JSON-строка, содержащая текущие значения полей экземпляра класса. |
Пример:
const webpush = new SimplePushNotification();
webpush.setTitle('Запрос обработан');
webpush.setBody('Ваш запрос обработан');
ss.info(webpush.getJson());
validate()
Используйте метод, чтобы выполнить валидацию текущих значений экземпляра SimplePushNotification без отправки уведомления.
Метод не принимает параметры.
Возвращаемое значение:
| Тип | Описание |
|---|---|
| String | Сериализованная JSON-строка, содержащая результаты валидации полей экземпляра класса. |
Строка результата может содержать следующие сообщения:
| Сообщение | Поля | Условие |
|---|---|---|
The parameter does not contain a value | title, body | Обязательное значение отсутствует. |
Some values are incorrect | userIds, groupIds | Массив содержит некорректные идентификаторы. |
The parameter contains an invalid value | url, ttl, iconUrl, urgency, interaction | Значение не соответствует типу, формату или допустимому диапазону. |
The parameter value has been truncated | title, body | Значение было сокращено до максимально допустимой длины. |
userID or groupID must be completed | recipients | Не заданы допустимые пользователи или группы получателей. |
Пример:
const webpush = new SimplePushNotification();
webpush.setTitle('Запрос обработан');
webpush.setBody('Ваш запрос обработан');
ss.info(webpush.validate());
Отправка пуш-уведомления
send()
Используйте этот метод для логической отправки пуш-уведомления.
Перед логической отправкой система выполняет валидацию параметров. Если обязательные параметры не заданы или заданы некорректно, то:
- логическая отправка не выполняется;
- создается соответствующая запись в Системном журнале (sys_log).
Возвращаемое значение:
| Тип | Описание |
|---|---|
| String | При успешной логической отправке возвращает ID (sys_id) созданной записи из таблицы Пуш-уведомления (sys_push_notification). В противном случае возвращает false. |
Пример
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);