> ## 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的REST API、事件流或设备端逻辑构建应用内活动动态来跟踪和显示用户通知历史。

## 什么是活动动态？

活动动态让用户在您的应用内查看他们收到的通知历史。

OneSignal专注于投递通知，但目前不存储发送给每个用户的消息历史。要构建此功能，您需要自己存储通知数据——可以在后端服务器上或直接在用户设备上。

<Tabs>
  <Tab title="选项1">
    ## 保存到服务器

    **推荐方法**

    不要依赖应用中的后台处理，而是使用[创建通知](/reference/create-message) REST API发送每个通知，并在服务器上存储副本。然后，当应用启动时，它可以检查服务器获取更新。

    数据存储后，您可以随时检索和显示用户的通知历史。
  </Tab>

  <Tab title="选项2">
    ## 使用OneSignal事件流创建活动动态

    OneSignal的[事件流](./event-streams)功能提供了一种可扩展的方式，将应用中的实时事件流式传输到您的后端系统或数据仓库。这让您能够构建反映应用内用户行为（如关注、评论、购买或通知事件）的动态，而无需在应用内手动更新动态。

    ### 工作原理

    事件流导出实时事件数据，包括：

    * 通知投递
    * 邮件/短信打开和点击
    * 用户触发的操作

    目标包括：

    * Webhook（您的HTTP端点）
    * Amazon Kinesis
    * Amazon S3
    * Google Cloud Storage
    * BigQuery
    * 更多

    您的系统在事件发生时接收这些事件，并可以使用它们更新动态UI或分析管道。

    ## 使用事件流设置活动动态的步骤

    <Steps>
      <Step title="启用事件流">
        * 转到**OneSignal仪表板** > **设置** > **事件流**。
        * 选择目标，如Webhook或数据管道（例如，Amazon Kinesis）。
        * 选择要流式传输的事件（例如，`message.sent`、`message.delivered`、`message.clicked`）。
      </Step>

      <Step title="配置后端处理事件数据">
        * 创建接收事件数据的webhook或消费者。
        * 解析事件负载以提取相关字段，如：

          * `external_id`（用户ID）
          * `event`类型（`message.delivered`等）
          * `timestamp`
          * `contents`（通知消息）
          * `additional_data`（任何自定义元数据）
      </Step>

      <Step title="存储和结构化活动动态条目">
        * 将这些事件以适合查询和渲染的格式保存到数据库中。

        ```json theme={null}
        {
          "message.id": "f3c9cd09-10d7-4f59-b9bc-66e16607f1d5",
          "message.name": "the-name-you-set",
          "message.title": "Claim 50% Off Today", // 邮件主题示例
          "message.title": "{'en':'the message title/headings'}", // 推送标题示例
          "message.contents": "{'en':'the message content'}",
          "message.template_id": "the-template-uuid-if-set",
          "message.url": "the-message-url",
          "message.app_url": "the-message-app-url",
          "message.web_url": "the-message-web-url"
        }
        ```
      </Step>

      <Step title="在应用中渲染动态">
        * 构建前端组件（例如，React、SwiftUI或Android View）来查询和显示登录用户的最近事件。
        * 可选择包括按事件类型的过滤器或分组。
      </Step>

      <Step title="使用额外元数据增强">
        * 发送通知时，包括`additional_data`来提供动态上下文，例如：

          ```json theme={null}
          {
            "action": "commented",
            "post_id": "xyz123"
          }
          ```

        * 这让您可以创建丰富的动态条目，如"Jane评论了您的帖子。"
      </Step>
    </Steps>

    ### 示例用例

    * **电子商务**：显示订单确认、物流更新和促销。
    * **社交应用**：显示点赞、评论、关注。
    * **SaaS平台**：跟踪任务分配、提及或活动日志。

    ### 优点

    * 通过事件流进行实时更新
    * 完全可定制的逻辑和显示
    * 可扩展的后端驱动架构
  </Tab>
</Tabs>

***
