# 메시지 보관함 API

## getInboxMessages

지정된 HWID에 대한 보관함 메시지 목록을 반환합니다.

`POST` `https://api.pushwoosh.com/json/1.3/getInboxMessages`

#### 요청 헤더

| 이름 | 필수 | 값 | 설명 |
|---|---|---|---|
| Authorization | 예 | Token `XXXX` | Device API에 액세스하기 위한 [API Device Token](/ko/developer/api-reference/api-access-token/#device-api-token)입니다. `XXXX`를 실제 Device API 토큰으로 교체하세요. |

#### 요청 본문

| 이름 | 유형 | 설명 |
|---|---|---|
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| userId\* | string | 사용자 지정 [User ID](/ko/developer/api-reference/api-identifiers/#user-id)가 설정되지 않은 경우 HWID를 사용합니다. |
| hwid | string | 보관함 메시지를 가져올 [기기의 Hardware ID](/ko/developer/api-reference/api-identifiers/#hardware-id)입니다. |
| last\_code | string | 이전 응답에서 검색된 마지막 메시지의 코드입니다. 비어 있으면 첫 번째 메시지가 반환됩니다. |
| count | integer | 단일 응답에 표시될 메시지 수입니다. 페이지 매김에 사용됩니다. 보관함의 모든 메시지를 로드하려면 0을 사용합니다. |

<Tabs>
<TabItem label="200">
```javascript
{
  "response": {
    "messages": [{                      // 사용자의 보관함에 현재 저장된 메시지 배열
      "inbox_id": "avde1c792cd",
      "rt": "146078676",                // 보관함에서 메시지를 제거할 날짜
      "send_date": "1459758676",        // 메시지가 보관함에 저장된 날짜
      "order": "59138176",              // 보관함 표시 순서의 위치
      "title": "New Rich Media in inbox!",
      "text": "Hi! New feature is available right now!",
      "action_type": "RichMedia",
      "action_params": {                // 푸시 열기 시 작업을 설명하는 페이로드
        "rm": "{\"url\":\"https:\/\/richmedia.pushwoosh.com\/C82F7-51FC1.zip\",\"ts\":\"1459758676\",\"tags\":{\"tagName\":\"tagValue\"}}"
      },
      "status": 1,                      // 1 - 전송됨, 2 - 읽음, 3 - 열림,
                                        // 4 - 삭제됨(사용자에 의해), 5 - Control Panel에서 삭제됨
      "hash":"1C"                       // 푸시 알림의 해시 코드
    }, {
      ...
    }],
    "next":"afarew511",                 // 다음 /getInboxMessages 요청에 의해
                                        // 반환될 다음 Inbox 코드
    "deleted": ["bbaf85ab", "a41957b"], // Control Panel에서 삭제된 메시지 목록
    "new_inbox": 6                      // 해당 사용자에 대해 전송된 보관함 메시지 수 (배지에 사용 가능)
  }
}
```
</TabItem>
</Tabs>

```javascript title="Example Request"
{
  "request": {
    "application": "XXXXX-XXXXX", // 필수. Pushwoosh 앱 코드
     "userId": "user_name_1",     // 필수. Pushwoosh에 등록된 User ID
     "device_type": 1             // 선택 사항. 기기 유형은 /registerDevice 참조
  }
}
```

<Aside type="note">
iOS의 경우, 푸시 전송 추적을 위해 프로젝트에 Notification Service Extension을 추가했는지 확인하세요. [자세히 알아보기](/ko/developer/pushwoosh-sdk/ios-sdk/ios-message-delivery-tracking/)
</Aside>

## inboxStatus

특정 보관함 메시지의 상태를 업데이트합니다.

`POST` `https://api.pushwoosh.com/json/1.3/inboxStatus`

#### 요청 헤더

| 이름 | 필수 | 값 | 설명 |
|---|---|---|---|
| Authorization | 예 | Token `XXXX` | Device API에 액세스하기 위한 [API Device Token](/ko/developer/api-reference/api-access-token/#device-api-token)입니다. `XXXX`를 실제 Device API 토큰으로 교체하세요. |

#### 요청 본문

| 이름 | 유형 | 설명 |
|---|---|---|
| application\* | string | [Pushwoosh 애플리케이션 코드](/ko/developer/api-reference/api-identifiers/#application-code) |
| inbox\_code\* | string | Control Panel의 메시지 세부 정보 또는 `/getInboxMessages` 요청의 "order" 매개변수에서 얻을 수 있습니다. |
| hash | string | 보관함 메시지의 해시 코드입니다. |
| hwid | string | 보관함 상태를 업데이트할 [기기의 Hardware ID](/ko/developer/api-reference/api-identifiers/#hardware-id)입니다. |
| time | string | 전송 날짜 타임스탬프입니다. |
| userID\* | string | 사용자 지정 [User ID](/ko/developer/api-reference/api-identifiers/#user-id)가 설정되지 않은 경우 HWID를 사용합니다. |
| status\* | integer | 1 - 전송됨, 2 - 읽음, 3 - 열림, 4 - 사용자에 의해 삭제됨. |
| device\_type | integer | [가능한 값 보기](/ko/developer/api-reference/api-identifiers/#device-type). |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>

```javascript title="Example"
{
  "request": {
    "application": "XXXXX-XXXXX",    // 필수. Pushwoosh 애플리케이션 코드
    "inbox_code": "874393934032909", // 필수. /getInboxMessages 요청의 "order" 매개변수
    "hash": "1C",                    // 선택 사항.
    "userId": "some_user",           // 필수.
    "status": 2,                     // 필수. 설정할 상태: 1-전송됨, 2-읽음, 3-열림, 4-삭제됨 (사용자에 의해)
    "device_type": 3                 // 선택 사항.
  }
}
```