Actor
#仕様
ActivityPub上の概念。一般的なSNS上のユーザの概念とほぼ対応する。
Actorは個々にURLを持つ
ActivityPub実装からは、ここを見ることでユーザのメタ情報を得る
Actorはそれぞれinboxとoutbox(windymelt.icon outboxは無くてもMastodonなどに認識されるようだ)を持つ
ActivityPub実装からは、ここにGETしたりPOSTしたりすることでActorとインタラクションする
という特徴がある。
Actor Endpoint
アクターエンドポイントは最低限?以下の内容を返す必要がある:
code:actor.json
{
"@context": [
"https://www.w3.org/ns/activitystreams",
"https://w3id.org/security/v1"
],
"id": "https://アクターエンドポイントのURL",
"type": "Person",
"preferredUsername": "画面に表示するユーザ名",
"inbox": "inboxへのURL",
"outbox": "outboxへのURL",
"discoverable": true, // ActivityPubの仕様外だが、これがないとMisskeyに認識してもらえない?
"publicKey": {
"id": "https://アクターエンドポイントのURL#main-key",
"owner": "https://アクターエンドポイントのURL",
"publicKeyPem": "----- BEGIN PUBLIC KEY -----\n...\n----- END PUBLIC KEY-----"
}
}
discoverableについてはActivityPub標準ではないwell-knownな拡張スキーマを参照
よそのActorにアクセスするとき
Acceptヘッダを使ってapplication/activity+jsonを要求しないとJSONではなくHTMLを返す実装がほとんどなので、ちゃんとAcceptヘッダを使うこと
INBOX/OUTBOXも同様
cf. HTTP Signatures
PreferredUsername
❌ PreferredUserName
⭕ PreferredUsername
hr.icon
windymelt.icon ActivityPub.iconの仕様外だが、それがないとうまく認識されないvendor-specificな仕様が多い