サーバーの情報を得る

/.well-known/nodeinfo にはnodeinfoバージョンとリンクが示されている。示されたバージョンのリンク先(ここでは2.0)へアクセスする。


/nodeinfo/2.0 にはversion、software、protocols、services、usage、metadata、openRegistrationsなどが記載されている。中でもmetadataにはnodeName、nodeDescription、maintainerなどサーバーの重要な情報が記述されている。

アカウントを見つける

/.well-known/host-meta にはxml形式でwebfingerのリンク先が示されている。
例)https://ivecolor.com/.well-known/webfinger?resource={uri}。このURLの{uri}の部分に検索したいアカウント(FediverseId)を入れアクセスする。


@kisana_meであれば、https://ivecolor.com/.well-known/webfinger?resource=acct:kisana_meである。


.well-known/webfinger?resource={uri} にはアカウントのウェブページやデータ返却用URLが示されている。データ返却用URL例)https://ivecolor.com/users/kisana_me


データ返却用URLはサーバーソフトウェアの実装によって多種多様であるが、アクセスすると、id、name、summary、iconのURL、publicKey、アクティビティinbox;outbox用のURL、フォロー関係表示用URLなどが記述されている。

アカウントのフォロー

アカウントのデータにはinboxのurlがあります。


そのinboxにfollowアクティビティを送ると自分のinboxに送ったfollowアクティビティをacceptアクティビティあるいはrejectアクティビティでラップされて送信されてきます。


基本はacceptがすぐ飛んできますが、相手が鍵垢だとそのユーザーがフォローを承認するのか破棄するのか選択するまで結果が返ってこないこともあります。


以上がActivityPubの大まかな流れです。これじゃわかりずらいと思うので後日実際のコードを交えて説明し直します。