Eva*_*rad 4 webfinger activitypub
我知道服务器通过 POST 到收件箱和发件箱进行通信。但是收件箱和发件箱的 URL 是什么?
URL 是实现服务器所说的任何内容。所以每个ActivityPub服务器的情况都是不同的。
参与者的收件箱和发件箱 URL在参与者的 JSON-LD 文档中定义:
{
"@context": ["https://www.w3.org/ns/activitystreams",
{"@language": "ja"}],
"type": "Person",
"id": "https://kenzoishii.example.com/",
// Right here!
"inbox": "https://kenzoishii.example.com/inbox.json",
"outbox": "https://kenzoishii.example.com/feed.json",
...
}
Run Code Online (Sandbox Code Playgroud)
这也意味着收件箱和发件箱可以是特定于参与者的,而不仅仅是特定于服务器的。
一些 ActivityPub 网站(例如 Mastodon)利用Webfinger来标准化可用于获取演员的 JSON-LD 文档的 URL:
/.well-known/webfinger?resource=acct:foo@example.org
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果您想知道 的收件箱flaque@mastodon.social,您将首先查询webfinger:
GET https://mastodon.technology/.well-known/webfinger?resource=acct:flaque@mastodon.technology
Run Code Online (Sandbox Code Playgroud)
这会给你一个像这样的 JSON 对象:
{
subject: "acct:Flaque@mastodon.technology",
links: [
{
rel: "self",
type: "application/activity+json",
href: "https://mastodon.technology/users/Flaque"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这样href: https://mastodon.technology/users/Flaque,您就可以通过以下方式获取 JSON 表示形式:
https://mastodon.technology/users/Flaque.json
Run Code Online (Sandbox Code Playgroud)
(注意.json!)
然后,这将为您提供一个完整的 actor 对象,其中包括inbox和outbox:
{
"inbox": "https://mastodon.technology/users/Flaque/inbox",
"outbox": "https://mastodon.technology/users/Flaque/outbox",
...
}
Run Code Online (Sandbox Code Playgroud)