> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 测试订阅

> 查找您设备的订阅记录，并在 OneSignal 中将其标记为测试订阅，以便更轻松地测试推送、电子邮件和短信等消息渠道。

**受众 > 订阅**显示您 OneSignal 应用中的每个订阅，以及 [OneSignal SDK 收集的数据](./data-collected-by-the-onesignal-sdk)。

订阅共有四种类型：

| 订阅类型     | 可接收               |
| -------- | ----------------- |
| **电子邮件** | 电子邮件消息            |
| **短信**   | SMS、MMS 和 RCS 消息  |
| **网页推送** | 网页推送通知            |
| **移动**   | 移动推送通知、应用内消息和实时活动 |

<Frame caption="OneSignal 仪表板受众 > 订阅页面。显示通过外部 ID 关联到同一用户的多个订阅。">
  <img src="https://mintcdn.com/onesignal/ciRrThfP6xMpI7GY/images/dashboard/subscription-types.png?fit=max&auto=format&n=ciRrThfP6xMpI7GY&q=85&s=7b88e08aaeb18e979c4e52949359ae36" alt="Subscriptions page showing Email, SMS, Web Push, and Mobile subscription types" width="3424" height="920" data-path="images/dashboard/subscription-types.png" />
</Frame>

<Card title="订阅" icon="address-book" href="./subscriptions">
  了解更多关于订阅以及如何管理它们的信息。
</Card>

您可以通过外部 ID、电子邮件、电话号码或 OneSignal ID 搜索用户和/或订阅。但如果您未向 OneSignal 提供电子邮件、电话号码或外部 ID，则无法通过这些方式进行搜索。详见[查找订阅](#finding-subscriptions)。

## 测试订阅

测试订阅是您指定用于测试消息投递的一组订阅。它们会显示在专用过滤器中，并可直接从消息编辑器中定向发送。

将您的设备添加为测试订阅：

1. 使用以下方法之一[查找您的订阅 ID](#finding-subscriptions)。
2. 在订阅 ID 旁边，选择**选项 > 添加为测试订阅**。
3. 为您的测试订阅命名。

<Frame caption="OneSignal 仪表板受众 > 订阅页面。显示一个订阅，其中选项菜单和添加为测试订阅选项已高亮显示。">
  <img src="https://mintcdn.com/onesignal/ZcUnlVp78Ic-q_xR/images/dashboard/add-as-test-subscription.png?fit=max&auto=format&n=ZcUnlVp78Ic-q_xR&q=85&s=7c51e0962a7a0d8c688c0114054b031d" alt="Options menu on a subscription record with Add as test user highlighted" width="2902" height="1346" data-path="images/dashboard/add-as-test-subscription.png" />
</Frame>

### 通过 API 设置

您也可以通过 REST API 将用户标记为测试用户，只需在创建或更新用户时设置 `test_user_name` 属性。

<CodeGroup>
  ```bash Create user theme={null}
  curl -X POST https://api.onesignal.com/apps/YOUR_APP_ID/users \
    -H "Content-Type: application/json" \
    -d '{
      "properties": {
        "test_user_name": "QA Device - Jane"
      }
    }'
  ```

  ```bash Update user theme={null}
  curl -X PATCH https://api.onesignal.com/apps/YOUR_APP_ID/users/by/{alias_label}/{alias_id} \
    -H "Content-Type: application/json" \
    -d '{
      "properties": {
        "test_user_name": "QA Device - Jane"
      }
    }'
  ```
</CodeGroup>

要移除测试用户标签，请将 `test_user_name` 设置为空字符串（`""`）。

## 查找订阅

查找订阅最简便的方式是通过 OneSignal 仪表板。如果您已知用户的外部 ID、电子邮件或电话号码，可直接在**受众 > 订阅**中搜索。

### 按最后活跃时间搜索

如果您不知道用户的 ID，可以通过活动记录找到您的设备：

1. 在您要查找的设备上打开您的应用或网站。确保 OneSignal 已初始化（代码正在运行）。
2. 在 OneSignal 仪表板中，前往**受众 > 订阅**。
3. 按**最后活跃**排序（箭头向上），将最近活跃的设备显示在顶部。

### 确认是您的设备

如果出现多个订阅，请使用右上角的**显示列**过滤器，显示有助于识别您设备的其他列：

| 列             | 检查内容                                                                                                                                  |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| **外部 ID**     | 应与您数据库中该用户的 ID 匹配。                                                                                                                    |
| **最后活跃**      | 应反映您刚刚打开应用或网站的时间。刷新页面以更新。                                                                                                             |
| **首次会话**      | 设备首次订阅的时间。如果您刚完成首次订阅，此项很有用。                                                                                                           |
| **IP 地址**     | 如已启用，可与您在 [whatismyipaddress.com](https://whatismyipaddress.com/) 上查到的 IP 进行比对。参见 [SDK 收集的数据](./data-collected-by-the-onesignal-sdk)。 |
| **标签**、**国家** | 如果您在此设备上设置了已知标签（如 `user_name` 或 `email`），可作为参考。                                                                                       |
| **设备**        | 网页显示浏览器及版本，移动应用显示设备型号及操作系统版本。                                                                                                         |

### 通过细分标签查找

如果您为用户添加了特定标签（例如 `user_name`、`email` 或其他标识符），可以创建一个[带有用户标签过滤器的细分](./segmentation#section-creating-advanced-segments)来定位该设备。

<Frame>
  <img src="https://mintcdn.com/onesignal/4HyuQPBpu-4xjmQC/images/docs/d0e0918-segment-user-tag-filter.png?fit=max&auto=format&n=4HyuQPBpu-4xjmQC&q=85&s=b0168905a85a4e6424dc0c38e746e25d" alt="Segment builder with a user tag filter to find a specific device" width="1678" height="214" data-path="images/docs/d0e0918-segment-user-tag-filter.png" />
</Frame>

### 通过代码查找订阅 ID

对于需要直接从代码中获取订阅 ID 的开发者：

<Accordion title="网页推送（浏览器控制台）">
  1. 在已订阅推送的浏览器配置文件中打开您的网站。
  2. 打开浏览器控制台（F12 或右键点击 > **检查** > **控制台**）。
  3. 运行：`OneSignal.User.PushSubscription.id`
  4. 订阅 ID 将输出到控制台。

  对于移动网页，请通过 USB 将 Android 设备连接到计算机，并使用 `chrome://inspect/#devices` 打开远程控制台会话。
</Accordion>

<Accordion title="移动应用（Xcode / Android Studio）">
  使用 OneSignal SDK 的[用户数据方法](./mobile-sdk-reference)，从 Xcode 或 Android Studio 将订阅 ID 输出到控制台。
</Accordion>

***

## 常见问题

### 如何删除测试订阅？

前往**受众 > 订阅**，搜索该订阅，然后选择**选项** > **从测试订阅中移除**。该订阅仍保留在您的应用中，但不再被标记为测试用途。

### 是否可以通过 API 设置测试订阅？

可以。在调用[创建用户](/reference/create-user)或[更新用户](/reference/update-user)时使用 `test_user_name` 属性，将用户标记为测试用户。此标签会自动同步至该用户的所有订阅。

### 是否可以通过 API 向测试订阅发送消息？

可以。使用[创建通知](/reference/create-message) API，通过 `include_subscription_ids` 参数传入您测试设备的订阅 ID。

### 我的测试订阅显示为已取消订阅，如何重新订阅？

这取决于订阅类型：

* **移动推送**：用户必须在设备设置中重新为您的应用启用通知（**设置 > 通知 > \[您的应用]**）。OneSignal 无法以编程方式覆盖用户的通知权限。
* **网页推送**：用户必须在浏览器设置中清除您网站的通知屏蔽并重新订阅。具体步骤请参见[网页推送故障排查](./troubleshooting-web-push)。
* **电子邮件 / 短信**：前往**受众 > 订阅**，找到该订阅并查看其状态。如果订阅是由取消订阅操作删除的，您可以通过[更新订阅](/reference/update-subscription) API 将 `"status"` 设置为适当的值来更新它。仅在用户重新同意接收消息后才可执行此操作。

<Warning>
  在未获得用户同意的情况下重新订阅，违反消息合规规定，可能导致垃圾邮件投诉、运营商过滤或账号暂停。
</Warning>

### 为什么我在仪表板中找不到我的订阅？

最常见的原因包括：

* 您使用的页面或界面上未初始化 OneSignal SDK。
* 您使用了错误的 ID 类型进行搜索。请尝试通过电子邮件、电话号码或订阅 ID 搜索。
* 该订阅创建于其他 OneSignal 应用（例如测试环境与生产环境不同）。

***

## 相关页面

<Columns cols={2}>
  <Card title="用户" icon="users" href="./users">
    了解 OneSignal 用户模型、别名和订阅记录。
  </Card>

  <Card title="细分" icon="filter" href="./segmentation">
    创建细分以定向特定用户群体（包括测试设备）。
  </Card>

  <Card title="SDK 收集的数据" icon="database" href="./data-collected-by-the-onesignal-sdk">
    查看 OneSignal SDK 为每个订阅收集和存储的数据。
  </Card>

  <Card title="创建消息 API" icon="code" href="/reference/create-message">
    通过编程方式向特定订阅 ID 发送通知。
  </Card>
</Columns>
