I should probably give some examples to be clearer. I can incorporate these into the FEP, too.
Here’s the example actor from the FEP:
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://purl.archive.org/socialweb/webfinger"
],
"id": "https://social.example.com/evanp",
"type": "Person",
"name": "Evan Prodromou",
"inbox": "https://social.example.com/evanp/inbox",
"outbox": "https://social.example.com/evanp/outbox",
"following": "https://social.example.com/evanp/following",
"followers": "https://social.example.com/evanp/followers",
"liked": "https://social.example.com/evanp/liked",
"webfinger": "evanp@example.com"
}
If you get https://example.com/.well-known/webfinger?resource=acct:evanp@example.com
, it should return something like this:
{
"subject" : "acct:evanp@example.com",
"links" : [
{
"href" : "https://social.example.com/evanp",
"rel" : "self",
"type" : "application/activity+json"
},
]
}
The href
should be exactly the same as the id
of the actor. A client can confirm that the Webfinger address points to the ActivityPub actor without re-fetching the actor.
The following would not be OK:
{
"subject" : "acct:evanp@example.com",
"links" : [
{
"href" : "https://redirector.example/redirect?to=https://social.example.com/evanp",
"rel" : "self",
"type" : "application/activity+json"
},
]
}