Note
このドキュメントは2026-02-27 02:48にPLaMo Translation Modelを使用して自動翻訳されました。
FEP-7628: アクターの移動処理
概要
ActivityPub規格に準拠したシステムにおいて、あるアクターから別のアクターへのフォロワー移行を行う機能。
履歴
MoveアクティビティはActivity Vocabularyで定義されています。
Mastodonでは2019年より、アカウント移行のためにMoveアクティビティを採用しています。このアクティビティは旧サーバーからフォロワーおよび当該アクティビティを受信したアクターに送信され、これにより各アクターは旧アカウントのフォローを解除し、新アカウントをフォローするよう更新されます。
要件
本文書中で使用される「MUST」「MUST NOT」「REQUIRED」「SHALL」「SHALL NOT」「SHOULD」「SHOULD NOT」「RECOMMENDED」「MAY」「OPTIONAL」の各用語は、RFC-2119に準拠して解釈されるものとします。
関連アクター
単一のペルソナは複数のアクターによって表現可能です。異なるアクターが同一のペルソナに関連付けられる条件は、それらが「リンクされている」場合に限られます。アクターをリンクさせる方法として以下の手段があります:
- アクターオブジェクトの
alsoKnownAsプロパティ。この方式は最も一般的で、Mastodonをはじめ多くのActivityPubサーバーで採用されています。 - FEP-c390によるアイデンティティ証明。同一の
subjectプロパティを持つアイデンティティ証明を有するアクター同士はリンクされます。 - rel-meリンク。両アクターのプロフィールメタデータに、同じウェブサイトを指す検証済みのrel-meリンクが含まれている場合、それらはリンクされているとみなされます。
移行処理
ペルソナに関連付けられた複数のアクターのうち、必ず1つをプライマリアクターとして指定する必要があります。アカウントの移動とは、このプライマリアクターを変更する操作を指します。
Moveアクティビティ
Moveアクティビティは、他のアクターに対してアカウント移行を通知するために使用されます。以下の必須プロパティを必ず含む必要があります:
type: アクティビティタイプは必ずMoveでなければなりません。actor: 移動処理を実行するアクター。object: 旧プライマリアクターのID。target: 新プライマリアクターのID。
このアクティビティが有効とみなされる条件は、objectおよびtargetとして指定されたアクター同士がリンクされていることです。
有効なMoveアクティビティを受信した場合、objectをフォローしているすべてのアクターはUndo(Follow)アクティビティを送信することでフォローを解除することができます。また、targetに対してFollowアクティビティを送信するか、もしくはユーザーに連絡先が移動したことを通知する必要があります。
このアクティビティには2つのサブタイプが存在します:
- 旧アクターによって送信される
Move(プッシュモード)。この場合、旧サーバーがオンライン状態である必要があります。 - 新アクターによって送信される
Move(プルモード)。この場合、旧サーバーはオンライン状態でなくとも、当該アクターを使用するユーザーは事前にフォロワーリストのバックアップを保持している必要があります。
【使用例1:サブタイプ1 - プッシュモード】
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://server1.example/activities/9b496346-fa69-40ac-bc4e-7ac06192abe1",
"type": "Move",
"actor": "https://server1.example/users/alice",
"object": "https://server1.example/users/alice",
"target": "https://server2.example/users/alice",
"to": "https://www.w3.org/ns/activitystreams#Public",
"cc": "https://server1.example/users/alice/followers"
}
【使用例2:サブタイプ2 - プルモード】
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": "https://server2.example/activities/9b496346-fa69-40ac-bc4e-7ac06192abe1",
"type": "Move",
"actor": "https://server2.example/users/alice",
"object": "https://server1.example/users/alice",
"target": "https://server2.example/users/alice",
"to": "https://www.w3.org/ns/activitystreams#Public",
"cc": "https://server2.example/users/alice/followers"
}
movedToおよびcopiedToプロパティ
移行後に旧プライマリアクターが無効化された場合、新プライマリアクターのIDを含むmovedToプロパティを必ず設定する必要があります。パブリッシャーはmovedToプロパティが存在する場合、そのアクティビティをアクターの受信トレイに配信しないことが望ましいです。
旧プライマリアクターが無効化されていない場合は、代わりにcopiedToプロパティを使用する必要があります。
movedToまたはcopiedToプロパティを追加した後、当該アクターはそのフォロワーに対して、Updateアクティビティを公開することで変更内容を通知する必要があります。
- movedTo
-
新プライマリアクターの所在地。このプロパティを含むアクターは非アクティブとみなされます。
- URI:
https://w3id.org/fep/7628#movedTo
- URI:
- copiedTo
-
新プライマリアクターの所在地。
- URI:
https://w3id.org/fep/7628#copiedTo
- URI:
参考文献
- Christine Lemmer-Webber、Jessica Tallon、Erin Shepherd、Amy Guy、Evan Prodromou、ActivityPub, 2018年
- James M Snell、Evan Prodromou、Activity Vocabulary, 2017年
- S. Bradner、RFCで要件レベルを示すためのキーワードの使用法, 1997年
- silverpill、FEP-c390: アイデンティティ証明, 2022年
- indieweb.org編集者、rel-me, 2013年
著作権
CC0 1.0 Universal(パブリックドメイン献呈)
法律で許容される範囲内において、本Fediverse Enhancement Proposalの著者らは、当該作品に関するすべての著作権および関連する権利を放棄しています。