Skip to content

Note

このドキュメントは2026-02-27 02:48PLaMo 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つのサブタイプが存在します:

  1. 旧アクターによって送信されるMoveプッシュモード)。この場合、旧サーバーがオンライン状態である必要があります。
  2. 新アクターによって送信される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
copiedTo

新プライマリアクターの所在地。

  • URI: https://w3id.org/fep/7628#copiedTo

参考文献

著作権

CC0 1.0 Universal(パブリックドメイン献呈)

法律で許容される範囲内において、本Fediverse Enhancement Proposalの著者らは、当該作品に関するすべての著作権および関連する権利を放棄しています。