3

我知道服务器通过 POST 到收件箱和发件箱进行通信。但是收件箱和发件箱的 URL 是什么?

4

1 回答 1

5

如何获取收件箱或发件箱 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",

  ...
}

这也意味着收件箱和发件箱可以是特定于参与者的,而不仅仅是特定于服务器的。

如何获取演员 JSON

一些 ActivityPub 网站(如 Mastodon)使用Webfinger来标准化可用于获取演员的 JSON-LD 文档的 URL:

/.well-known/webfinger?resource=acct:foo@example.org

在这种情况下,如果您想知道 的收件箱flaque@mastodon.social,您将首先查询webfinger:

GET https://mastodon.technology/.well-known/webfinger?resource=acct:flaque@mastodon.technology

这会给你一个像这样的 JSON 对象:

{
  subject: "acct:Flaque@mastodon.technology",
  links: [
    {
      rel: "self",
      type: "application/activity+json",
      href: "https://mastodon.technology/users/Flaque"
    }
  ]
}

有了它href: https://mastodon.technology/users/Flaque,您可以通过以下方式获得 JSON 表示:

https://mastodon.technology/users/Flaque.json

(注意.json!)

这会给你一个完整的演员对象,其中包括inboxand outbox

{
  "inbox": "https://mastodon.technology/users/Flaque/inbox",
  "outbox": "https://mastodon.technology/users/Flaque/outbox",
  ...
} 
于 2019-03-02T21:34:17.747 回答