SuperAPI AI 工具集

federation

通用与其它

查看项目

更新于 10-15 17:21

技能介绍

用途:本技能用于理解 ActivityPub 协议规范及其联邦运作方式,适用于处理 ActivityPub 活动、理解联邦机制或在实现相关功能时查阅。支持的功能与兼容性详见 FEDERATION.md,实现细节(transformer、handler、PHP 代码模式)详见 AGENTS.md。

核心概念:三大构建块为 Actor(用户/账号,需有唯一 URI 及 inbox、outbox,可选 followers、following、liked)、Activity(行为,如 Create、Update、Delete、Follow、Like、Announce、Undo)、Object(被操作的内容,如 Note、Article、图片、视频)。

集合与寻址:Inbox 接收活动并按 ID 去重、按权限过滤;Outbox 发布公开活动记录;Followers、Following 用于投递与时间线。公开寻址使用 https://www.w3.org/ns/activitystreams#Public 标记,它不是真实 inbox,不应向其投递。

服务器间联邦:投递流程为解析收件人(检查 to、bto、cc、bcc、audience,解引用集合,去重并排除自身 actor)、发现 inbox(获取 actor 档案,优先用 sharedInbox 以提升效率)、通过 HTTP POST 投递,Content-Type 为 application/ld+json,使用 HTTP Signatures 鉴权并处理失败。

功能与限制:具备 Inbox 转发(解决“幽灵回复”)、sharedInbox 优化、to/cc/bto/bcc 可见性模式(投递前须移除 bto、bcc)。安全方面需验证来源、检查 HTTP Signatures、防伪造、限流、清洗 HTML。当启用 ActivityPub API 选项时,第三方客户端可通过 activitypub/1.0/oauth/ 使用 OAuth 2.0 认证,支持 RFC 7591 动态注册、RFC 7636 PKCE(仅 S256)与 CIMD(client_id 为 URL,需 HTTPS)。Loopback 重定向 http://127.0.0.1:{port}/{path} 与 http://[::1]:{port}/{path} 允许端口灵活,localhost 亦接受。保留但非 loopback 的地址(如 0.0.0.0、169.254.0.0/16、私有网段)不受 loopback 豁免。

测试命令:curl -H "Accept: application/activity+json" https://site.com/@username;curl https://site.com/.well-known/webfinger?resource=acct:user@site.com;curl https://site.com/.well-known/nodeinfo。常见问题涉及未收到活动、回复未联邦、关注者同步异常,可检查 inbox 可达性、签名校验、content-type、转发开关与 inReplyTo 设置。