# 消息收件箱 API

## getInboxMessages

返回指定 HWID 的收件箱消息列表。

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

#### Request headers

| 名称 | 必填 | 值 | 描述 |
|---|---|---|---|
| Authorization | 是 | Token `XXXX` | 用于访问 Device API 的 [API Device Token](/zh/developer/api-reference/api-access-token/#device-api-token)。请将 `XXXX` 替换为您的实际 Device API token。 |

#### Request Body

| 名称 | 类型 | 描述 |
| --- | --- | --- |
| application\* | string | [Pushwoosh 应用程序代码](/zh/developer/api-reference/api-identifiers/#application-code) |
| userId\* | string | 如果未设置自定义 [User ID](/zh/developer/api-reference/api-identifiers/#user-id)，则使用 HWID。 |
| hwid | string | 要获取收件箱消息的设备的 [硬件 ID](/zh/developer/api-reference/api-identifiers/#hardware-id)。 |
| last\_code | string | 在上一个响应中检索到的最后一条消息的代码。如果为空，则返回第一批消息。 |
| count | integer | 单个响应中显示的消息数量；用于分页。0 表示加载收件箱中的所有消息。 |

<Tabs>
<TabItem label="200">
```
{
  "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 - 已从控制面板删除
      "hash":"1C"                       // 推送通知的哈希代码
    }, {
      ...
    }],
    "next":"afarew511",                 // 下一个 /getInboxMessages 请求将返回的
                                        // 下一个收件箱代码
    "deleted": ["bbaf85ab", "a41957b"], // 从控制面板删除的消息列表
    "new_inbox": 6                      // 该用户已送达的收件箱消息数量（可用于徽章）
  }
}
```
</TabItem>
</Tabs>

```json 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 添加到您的项目中，以跟踪推送送达情况。[了解更多](/zh/developer/pushwoosh-sdk/ios-sdk/ios-message-delivery-tracking/)
</Aside>

## inboxStatus

更新特定收件箱消息的状态。

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

#### Request headers

| 名称 | 必填 | 值 | 描述 |
|---|---|---|---|
| Authorization | 是 | Token `XXXX` | 用于访问 Device API 的 [API Device Token](/zh/developer/api-reference/api-access-token/#device-api-token)。请将 `XXXX` 替换为您的实际 Device API token。 |

#### Request Body

| 名称 | 类型 | 描述 |
| --- | --- | --- |
| application\* | string | [Pushwoosh 应用程序代码](/zh/developer/api-reference/api-identifiers/#application-code) |
| inbox\_code\* | string | 可以从控制面板中的消息详情或 `/getInboxMessages` 请求的 "order" 参数中获取 |
| hash | string | 收件箱消息的哈希代码。 |
| hwid | string | 要更新收件箱状态的设备的 [硬件 ID](/zh/developer/api-reference/api-identifiers/#hardware-id)。 |
| time | string | 发送日期时间戳。 |
| userID\* | string | 如果未设置自定义 [User ID](/zh/developer/api-reference/api-identifiers/#user-id)，则使用 HWID。 |
| status\* | integer | 1 - 已送达，2 - 已读，3 - 已打开，4 - 由用户删除。 |
| device\_type | integer | [查看可能的值](/zh/developer/api-reference/api-identifiers/#device-type)。 |

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

```json 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                 // 可选。
  }
}
```