☰
ActivityStreams 简介
2026/11/6 1:22:47 网站建设 项目流程

一、前言:为什么会有 ActivityStreams?

在现代 Web 世界中,“事件流(Activity Stream)”已经成为了许多系统的核心组成部分。
无论是 Facebook 的动态、Slack 的消息、GitHub 的提交记录,还是企业内部的业务事件(如“用户下单”、“任务完成”),都可以抽象为一条“活动(Activity)”。

问题在于:
不同平台的事件格式完全不同。一个“点赞”事件在 Facebook、Twitter、LinkedIn 上的结构都不一样。
这就导致了系统间数据共享、事件订阅、聚合分析的复杂性。

于是,W3C 提出了一个统一的标准 ——ActivityStreams 2.0

二、W3C ActivityStreams 标准简介

ActivityStreams 2.0是由 W3C Social Web Working Group 制定的开放标准,
它定义了一种统一的数据模型和JSON-LD 格式,用于描述社会化活动(social activities)。

W3C 的定义非常清晰:

ActivityStreams provides a JSON-based vocabulary to describe activities in a social system — who did what, to whom, and with what result.

换句话说,ActivityStreams 关注的就是:

  • 谁(actor)
  • 对什么(object)
  • 做了什么(verb/action)

三、核心理念:Activity = Actor + Verb + Object

ActivityStreams 的核心抽象就是一个Activity 对象。
一条 Activity 就是一件“发生的事”。
一个典型的例子如下:

{"@context":"https://www.w3.org/ns/activitystreams","type":"Like","actor":"https://example.org/user/alice","object":"https://example.org/post/1234","published":"2025-10-17T09:00:00Z"}

这条记录的语义是:Alice 点赞了帖子 1234。

在这条简单的 JSON 中,你已经能看到 ActivityStreams 的三大核心字段:

字段含义
type活动类型(Like、Create、Follow、Announce…)
actor发起者(通常是用户或系统
object目标对象(可以是文章、图片、视频、评论等)

四、ActivityStreams 的数据模型

ActivityStreams 的模型体系非常优雅,它将社交世界抽象为几类核心对象:

Object(对象)

所有可以被操作的东西,都是 Object。
例如:Note(笔记)、Image(图片)、Article(文章)、Video(视频)等。

{"type":"Note","name":"Hello world","content":"My first post!"}

Actor(行动者)

发起活动的实体,可以是人、群组、应用或组织。

{"type":"Person","id":"https://example.org/user/bob","name":"Bob"}

Activity(活动)

描述 Actor 对 Object 所做的行为,如 Create、Like、Follow、Delete 等。

{"type":"Create","actor":"https://example.org/user/bob","object":{"type":"Note","content":"This is my first post!"}}

典型应用场景

场景示例描述
社交网络Mastodon、Misskey用户发布、点赞、关注的事件流
企业内部事件总线微服务架构统一描述“谁做了什么”业务事件
数据聚合平台Feedly、Zapier跨系统聚合不同来源的活动
审计与日志系统安全或监控日志抽象系统行为为 Activity 对象

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询