# Клиентские действия плагина Pushwoosh для Outsystems

Плагин предоставляет набор клиентских действий для управления push-уведомлениями. Эти действия позволяют регистрировать и отменять регистрацию устройств, устанавливать и получать теги, управлять сообщениями во Входящих и многое другое.

## Клиентские действия плагина Pushwoosh

### CheckPushwooshPlugin

Проверяет, доступен ли в данный момент плагин Pushwoosh.

#### Выходные параметры

| IsAvailable | Возвращает true, если плагин доступен для использования, в противном случае — false                                                                               |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error       | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

#### Пример использования

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-1.webp" alt="Действие CheckPushwooshPlugin"/>

### RegisterDevice

Регистрирует устройство для получения push-уведомлений и получает Push Token.

#### Входные параметры

| ApplicationCode | Текст, код приложения Pushwoosh, полученный из настроек вашего аккаунта. |
| --------------- | ------------------------------------------------------------------------- |



#### Выходные параметры

| RegisterToken | Токен, полученный от Google или Apple для устройства                                                                                                             |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| Error         | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

### UnregisterDevice

Отменяет регистрацию устройства для получения push-уведомлений.

#### Выходные параметры

| Success | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

### GetDeviceID

Получает ID устройства, который должен быть уникальным идентификатором.

#### Выходные параметры

| DeviceHwid | Уникальный идентификатор устройства.                                                                                                          |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Error      | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если произошла ошибка. |

### GetDeviceType

Получает тип устройства (Android, iOS или Windows).

#### Выходные параметры

| DeviceTypeId | Идентификатор этого типа устройства. |
| ------------ | ----------------------------------- |

### GetTags

Получает данные тегов из Pushwoosh.

#### Выходные параметры

| Success | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |
| Tags    | Возвращает список записей (ключ, значение), содержащий все теги, назначенные этому устройству.                                                                                      |

#### Пример использования

1. Вызовите действие **GetTags**, чтобы получить данные тегов из Pushwoosh.
2. Возвращенные теги доступны через список **GetTags.Tags**.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-2.webp" alt="Получение тегов"/>

3. Используйте действие **LogMessage**, чтобы записать в лог ключ и значение каждого тега.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-3.webp" alt="Запись тегов в лог"/>

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-4.webp" alt="Результат записи тегов в лог"/>

### PostEvent

Отправляет сообщение в Pushwoosh, когда в вашем приложении происходит определенное событие.

#### Входные параметры

| EventName       | Текст, название события                                                                                                                                                    |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| EventAttributes | Список записей (ключ, значение), используемый для отправки дополнительных данных о событии в Pushwoosh (например, для действия "UserLogin" вы можете отправить данные для входа, такие как `{"username":"John"}`) |

Выходные параметры

| Success | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

#### Пример использования

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-5.webp" alt="Пример использования PostEvent"/>

**1. Назначение (Assign)**

Настройте пары ключ-значение для определения данных события. Например, KeyValue1.AttributeName как "test1" и KeyValue1.Value как "test1value". Аналогично определите KeyValue2 с соответствующим именем и значением атрибута.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-6.webp" alt="Назначение атрибутов события"/>

2\. Создайте списки атрибутов, которые будут связаны с событием.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-7.webp" alt="Создание списка атрибутов"/>

3. Наконец, настройте действие **PostEvent**.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-8.webp" alt="Настройка действия PostEvent"/>

### SetBadgeNumber

Устанавливает число на значке приложения (badge).

#### Входные параметры

| BadgeNumber | Целое число, число на значке. |
| ----------- | --------------------------- |

#### Выходные параметры

| Success | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

### SetLanguage

Устанавливает пользовательский язык приложения вместо системного языка по умолчанию.

#### Входные параметры

| Language | Текст, пользовательский язык приложения в 2-буквенном формате ISO (например, "en", "es", "fr") |
| -------- | --------------------------------------------------------------------------------- |

### SetTags

Отправляет теги и их значения в Pushwoosh.

#### Входные параметры

| Tags | Список записей (TagName, TagValue), содержащий все теги, которые вы хотите отправить. Тип TagName всегда должен быть Text, в то время как TagValue может быть Text, Integer, Boolean, Date и т.д. |
| ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### Выходные параметры

| Success | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

#### Пример использования

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-9.webp" alt="Пример использования SetTags"/>

1. Назначьте значения тегов. В примере ниже есть два тега:

* Tag1 с именем testTag и значением, установленным на текущую дату.
* Tag2 с именем testTag2 и значением, установленным на True.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-10.webp" alt="Назначение значений тегов"/>

2\. Затем добавьте теги в список. В этом примере:

* ListAppend3 добавляет Tag1 в список LocalTag.
* ListAppend4 добавляет Tag2 в список LocalTag.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-11.webp" alt="Добавление тегов в список"/>

3\. После заполнения списка необходимыми тегами используйте клиентское действие **SetTags**, чтобы отправить этот список в Pushwoosh.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-12.webp" alt="Отправка тегов с помощью SetTags"/>

### SetUserId

Присваивает этому устройству пользовательский User ID.

#### Входные параметры

| UserID | Текст, пользовательский User ID. |
| ------ | --------------------- |

#### Выходные параметры

| Success | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

## Клиентские действия для Входящих Pushwoosh

Процесс работы с Входящими следующий:

1. Загрузите список объектов InboxMessage.
2. Используйте эти объекты для отображения вида Входящих.
3. Выполните действия, перечисленные ниже, или удалите эти объекты, используя описанные ниже действия.

| code              | Текст                  | Уникальный ID уведомления во Входящих.                                                                                                                                                                                                                                                                                           |
| ----------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| title             | Текст                  | Заголовок уведомления.                                                                                                                                                                                                                                                                                                           |
| message           | Текст                  | Сообщение уведомления.                                                                                                                                                                                                                                                                                                         |
| imageUrl          | Текст                  | URL пользовательского изображения, прикрепленного к уведомлению.                                                                                                                                                                                                                                                                 |
| sendDate          | <p>Дата</p><p>Время</p> | Представляет время отправки уведомления.                                                                                                                                                                                                                                                                                         |
| type              | Целое число            | <p>Тип уведомления.</p><p> Возможные значения:</p><ul><li>0 - обычное уведомление</li><li>1 - rich media уведомление</li><li>2 - URL-уведомление</li><li>3 - deep link уведомление</li></ul>                                                                                                                                |
| bannerUrl         | Текст                  | Содержит URL баннера для Android.                                                                                                                                                                                                                                                                                                |
| customData        | Список записей (ключ, значение) | Содержит список параметров, переданных как пользовательские данные.                                                                                                                                                                                                                                                                              |
| isRead            | Логический             | True, если уведомление во Входящих прочитано.                                                                                                                                                                                                                                                                                               |
| isActionPerformed | Логический             | <ul><li><strong>True</strong>, если действие уведомления выполнено. </li><li>Для обычных уведомлений — <strong>true</strong>, если уведомление прочитано. </li><li>Для Rich Media — <strong>true</strong>, если rich media было показано. </li><li>Для URL и deep-ссылок — <strong>true</strong>, если URL/deep-ссылка была открыта.</li></ul> |

### LoadMessages

Получает уведомления из Входящих от Pushwoosh.

#### Выходные параметры

| InboxMessages | Список InboxMessage, список всех сообщений во Входящих.                                                                                                                   |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | Возвращает **true**, если все прошло успешно, и **false**, если произошла ошибка.                                                                                 |
| Error         | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

### ReadMessage

Помечает сообщение во Входящих как прочитанное.

#### Входные параметры

| MessageCode | Текст, код InboxMessage (полученный как параметр InboxMessage в LoadMessages) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### Выходные параметры

| Success | True, если все прошло успешно, и false, если произошла ошибка.                                                                                                 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

### PerformAction

Выполняет действие для указанных сообщений во Входящих (например, открывает URL в браузере).

#### Входные параметры

| MessageCode | Текст, код InboxMessage (полученный как параметр InboxMessage в LoadMessages) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### Выходные параметры

| Success | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

### DeleteMessage

Удаляет сообщение из Входящих.

#### Входные параметры

| MessageCode | Текст, код InboxMessage (полученный как параметр InboxMessage в LoadMessages) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### Выходные параметры

| Success | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

### TotalMessagesCount

Возвращает общее количество сообщений во Входящих.

#### Выходные параметры

| MessagesCount | Целое число, общее количество сообщений во Входящих.                                                                                                                         |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| Error         | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

### UnreadMessagesCount

Возвращает количество непрочитанных сообщений во Входящих.

#### Выходные параметры

| UnreadMessagesCount | Целое число, количество непрочитанных сообщений во Входящих.                                                                                                                        |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success             | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| Error               | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |

### MessagesWithNoActionPerformedCount

Возвращает количество сообщений во Входящих, для которых не было выполнено никаких действий.

#### Выходные параметры

| MessagesWithNoActionPerformedCount | Целое число, количество сообщений во Входящих, для которых не было выполнено никаких действий.                                                                                                      |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success                            | Возвращает true, если все прошло успешно, и false, если произошла ошибка.                                                                                         |
| Error                              | Ошибка, содержащая код и сообщение с подробной информацией о возможной ошибке. Устанавливается только в том случае, если выходной параметр Success имеет значение false. |