フォローする

Activity:Follow

私家版ActivityPub日本語訳

フォローしたいアカウントのinboxに、FollowのActivity(JSON)を署名つきのリクエストでPOSTします。

POSTリクエストを投げる時はminetype
Content-type:application/activity+json
が必須です。

  1. フォローしたいお相手を見つける
  2. フォロー申請のActivityを作る

どこでもいいので、タイムラインを眺めていて「を!このひと面白いー!」とか「この映画、おれと同じ感想だ!」とかフォローしたいひとを見つけたら、そのアカウントを確認。

たとえば。このまだらさんをフォローするには、このアカウントは「@donbe1961@fedibird.com」ということをプロフィールページなどで確認。
フォロー申請をするには、アカウントのActivityの受付窓口のinboxのURLを知る必要がある。

webfingerでこのアカウントのIDを検索。「self」の「href」がこのアカウントのID、というかActivityの受付窓口。
フォロー申請はこのID「/inbox」、「https://fedibird.com/users/donbe1961/inbox」 にリクエストを投げる。

Follow:フォロー申請のJSON


{
  "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
          "Hashtag": "as:Hashtag"
      }
  ],
  "type": "Follow",
  "id": "https://tokoroten.doncha.net/t2aki#4a73bbac-6395-11ee-8df0-b2becfce0011",
  "actor": "https://tokoroten.doncha.net/t2aki",
  "object": "https://fedibird.com/users/donbe1961"
}
	

「@context」は呪文でok

「type」は「Follow
これは Create と同じ動詞属性のtype。「Createする」「Followする」という感じ

「id」は一意ならなんでもOK。ここではuuidを使ってる。
※ フォローの解除にはこのidをUndoすることになる。フォローをしたらフォロー申請のために作ったJSONを保存しておく必要がある。

「actor」はフォロー申請するアカウント。つまり自分のアカウントID

「object」がフォロー申請したいお相手のアカウントID。webfingerで取得したID。

Followに対するリアクション

Follow申請をしたらお相手のリアクションは3パターン

  1. Activity:Accept フォロー承認のリクエスト
  2. Activity:Reject フォロー拒否のリクエスト
  3. リアクションなし

【承認(Accept)の場合】

お相手のfollowersに自分が追加される
お相手の投稿が流れてくる
お相手を自分のfollowingに追加する

これでお相手の投稿が自分のホームラインに流れてきて見ることができるようになります(こちらの投稿は「承認」されただけではお相手に流れない)

【拒否(Reject)の場合】

何も起こりません。

【リアクションなし】

何も起こりません。
Follow申請に対して、Accept(承認)かReject(拒否)を返答するかどうかはSHOULD(すべき)で、MUST(必須)じゃないし、サーバーの不調などでリアクションできないこともあるので、様子見でしょうか。

Followされた場合は上記の裏返し。同じ対応、返答をすることになります。

followers / followingに追加するのは、データベースでもファイルでも形式はともかく、リストを作って持っておきます。
followersリストは自分の投稿の配送先なので必須です。

Fediverseはフォロー / フォロワーで繋っている

今さらなんだけど。
フォローしたら、フォローしたひとの投稿が自分のところに飛んくる。
フォローされたら、自分の投稿がフォロワーのところに飛んでいく。

ActivityPubを実装しただけでは、何も始まらない。「フォローしたいひとを見つけてフォローする」ことが、第一歩となります。

[2024-11-12 11:49:58] v1.0.1

[2024-11-11 14:12:44] v1.0.0

Menu