# Pushwoosh Outsystems 플러그인 클라이언트 액션

플러그인은 푸시 알림 관리를 용이하게 하는 클라이언트 액션 세트를 제공합니다. 이 액션을 사용하면 디바이스 등록 및 등록 취소, 태그 설정 및 가져오기, 받은 편지함 메시지 관리 등을 할 수 있습니다.

## Pushwoosh 플러그인 클라이언트 액션

### CheckPushwooshPlugin

Pushwoosh 플러그인이 현재 사용 가능한지 확인합니다.

#### 출력 매개변수

| IsAvailable | 플러그인을 사용할 수 있으면 true를, 그렇지 않으면 false를 반환합니다.                                                                                                  |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error       | 발생할 수 있는 모든 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. Success 출력 매개변수가 false일 때만 설정됩니다. |

#### 사용 예시

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-1.webp" alt="CheckPushwooshPlugin action"/>

### RegisterDevice

푸시 알림을 위해 디바이스를 등록하고 Push Token을 검색합니다.

#### 입력 매개변수

| ApplicationCode | 텍스트, 계정 설정에서 얻은 Pushwoosh 애플리케이션 코드입니다. |
| --------------- | ------------------------------------------------------------------------- |



#### 출력 매개변수

| RegisterToken | 디바이스에 대해 Google 또는 Apple에서 받은 토큰                                                                                                               |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | 모든 것이 예상대로 진행되면 true를, 오류가 있으면 false를 반환합니다.                                                                                         |
| Error         | 발생할 수 있는 모든 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. Success 출력 매개변수가 false일 때만 설정됩니다. |

### UnregisterDevice

푸시 알림 수신에서 디바이스를 등록 취소합니다.

#### 출력 매개변수

| Success | 모든 것이 예상대로 진행되면 true를, 오류가 있으면 false를 반환합니다.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 발생할 수 있는 모든 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. Success 출력 매개변수가 false일 때만 설정됩니다. |

### GetDeviceID

고유 식별자여야 하는 디바이스 ID를 검색합니다.

#### 출력 매개변수

| DeviceHwid | 디바이스의 고유 식별자입니다.                                                                                                          |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Error      | 발생한 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. 오류가 발생했을 때만 설정됩니다. |

### GetDeviceType

디바이스 유형(Android, iOS 또는 Windows)을 가져옵니다.

#### 출력 매개변수

| DeviceTypeId | 이 디바이스 유형의 식별자입니다. |
| ------------ | ----------------------------------- |

### GetTags

Pushwoosh에서 태그 데이터를 가져옵니다.

#### 출력 매개변수

| Success | 모든 것이 예상대로 진행되면 true를, 오류가 있으면 false를 반환합니다.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 발생할 수 있는 모든 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. Success 출력 매개변수가 false일 때만 설정됩니다. |
| Tags    | 이 디바이스에 할당된 모든 태그를 포함하는 Key, Value Record List를 반환합니다.                                                                                      |

#### 사용 예시

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 | Key, Value Record List, 추가 이벤트 데이터를 Pushwoosh로 보내는 데 사용됩니다(예: "UserLogin" 액션의 경우 `{"username":"John"}`과 같은 로그인 데이터를 보낼 수 있습니다). |

출력 매개변수

| Success | 모든 것이 예상대로 진행되면 true를, 오류가 있으면 false를 반환합니다.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 발생할 수 있는 모든 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. Success 출력 매개변수가 false일 때만 설정됩니다. |

#### 사용 예시

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-5.webp" alt=""/>

**1. 할당**

이벤트에 대한 데이터를 정의하기 위해 키-값 쌍을 설정합니다. 예를 들어, 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=""/>

### SetBadgeNumber

애플리케이션 아이콘 배지 번호를 설정합니다.

#### 입력 매개변수

| BadgeNumber | 정수, 아이콘 배지 번호입니다. |
| ----------- | --------------------------- |

#### 출력 매개변수

| Success | 모든 것이 예상대로 진행되면 true를, 오류가 있으면 false를 반환합니다.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 발생할 수 있는 모든 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. Success 출력 매개변수가 false일 때만 설정됩니다. |

### SetLanguage

기본 시스템 언어 대신 사용자 지정 애플리케이션 언어를 설정합니다.

#### 입력 매개변수

| Language | 텍스트, 2자리 ISO 형식의 사용자 지정 애플리케이션 언어(예: "en", "es", "fr") |
| -------- | --------------------------------------------------------------------------------- |

### SetTags

태그와 그 값을 Pushwoosh로 보냅니다.

#### 입력 매개변수

| Tags | 보내려는 모든 태그를 포함하는 TagName, TagValue Record List입니다. TagName 유형은 항상 텍스트여야 하며, TagValue는 텍스트, 정수, 불리언, 날짜 등이 될 수 있습니다. |
| ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### 출력 매개변수

| Success | 모든 것이 예상대로 진행되면 true를, 오류가 있으면 false를 반환합니다.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 발생할 수 있는 모든 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. Success 출력 매개변수가 false일 때만 설정됩니다. |

#### 사용 예시

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-9.webp" alt=""/>

1. 태그 값을 할당합니다. 아래 예시에는 두 개의 태그가 있습니다:

* 이름이 testTag이고 값이 현재 날짜로 설정된 Tag1.
* 이름이 testTag2이고 값이 True로 설정된 Tag2.

<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=""/>

### SetUserId

이 디바이스에 사용자 지정 User ID를 할당합니다.

#### 입력 매개변수

| UserID | 텍스트, 사용자 지정 User ID입니다. |
| ------ | --------------------- |

#### 출력 매개변수

| Success | 모든 것이 예상대로 진행되면 true를, 오류가 있으면 false를 반환합니다.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 발생할 수 있는 모든 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. Success 출력 매개변수가 false일 때만 설정됩니다. |

## Pushwoosh Inbox 클라이언트 액션

Inbox 작업 과정은 다음과 같습니다:

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 - 리치 미디어 알림</li><li>2 - URL 알림</li><li>3 - 딥 링크 알림</li></ul>                                                                                                                                |
| bannerUrl         | 텍스트                   | Android 배너의 URL을 포함합니다.                                                                                                                                                                                                                                                                                                |
| customData        | Key, Value Record List | 사용자 지정 데이터로 전달된 매개변수 목록을 포함합니다.                                                                                                                                                                                                                                                                              |
| isRead            | 불리언                | 받은 편지함 알림을 읽었으면 True입니다.                                                                                                                                                                                                                                                                                               |
| isActionPerformed | 불리언                | <ul><li>알림 액션이 수행되었으면 <strong>True</strong>입니다. </li><li>일반 알림의 경우, 알림을 읽었으면 <strong>true</strong>입니다. </li><li>리치 미디어의 경우, 리치 미디어가 표시되었으면 <strong>true</strong>입니다. </li><li>URL 및 딥 링크의 경우, URL/딥 링크가 열렸으면 <strong>true</strong>입니다.</li></ul> |

### LoadMessages

Pushwoosh에서 받은 편지함 알림을 가져옵니다.

#### 출력 매개변수

| InboxMessages | InboxMessage List, 모든 받은 편지함 메시지 목록입니다.                                                                                                                   |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | 모든 것이 예상대로 진행되면 **true**를, 오류가 있으면 **false**를 반환합니다.                                                                                 |
| Error         | 발생할 수 있는 모든 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. Success 출력 매개변수가 false일 때만 설정됩니다. |

### ReadMessage

받은 편지함 메시지를 읽음으로 표시합니다.

#### 입력 매개변수

| MessageCode | 텍스트, InboxMessage의 코드(LoadMessages에서 InboxMessage의 매개변수로 수신됨) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### 출력 매개변수

| Success | 모든 것이 예상대로 진행되면 True, 오류가 있으면 false입니다.                                                                                                 |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 발생할 수 있는 모든 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. Success 출력 매개변수가 false일 때만 설정됩니다. |

### PerformAction

지정된 받은 편지함 메시지에 대한 액션을 수행합니다(예: 브라우저에서 URL 열기).

#### 입력 매개변수

| MessageCode | 텍스트, InboxMessage의 코드(LoadMessages에서 InboxMessage의 매개변수로 수신됨) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### 출력 매개변수

| Success | 모든 것이 예상대로 진행되면 true를, 오류가 있으면 false를 반환합니다.                                                                                         |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | 발생할 수 있는 모든 오류에 대한 세부 정보가 포함된 오류 코드와 오류 메시지를 포함하는 오류입니다. Success 출력 매개변수가 false일 때만 설정됩니다. |

### DeleteMessage

받은 편지함에서 메시지를 제거합니다.

#### 입력 매개변수

| MessageCode | 텍스트, InboxMessage의 코드(LoadMessages에서 InboxMessage의 매개변수로 수신됨) |
| ----------- | ------------------------------------------------------------------------------------------ |

#### 출력 매개변수

| 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일 때만 설정됩니다. |