フォロー

Fedibirdの投稿の公開範囲『サークル』は、フォロワー限定をさらに狭くした公開範囲で、あらかじめサークル名とメンバーをフォロワーの中から指名して作成しておき、そのサークルに限定した投稿を行う機能です。

サークルで指名した人だけが投稿を受け取って読むことができますが、投稿には宛先の情報やメンションが含まれておらず、受け取った人からは、他に誰が受け取っている投稿なのか秘匿されます。

サークルに返信することはできますが、返信元となる投稿を受け取っている人(サークルのメンバー)に転送されるという特殊な宛先になります。

ファンクラブ向け特典など限定コンテンツ配信とか、信用している人限定のつぶやきに使うなどで、一方的に配信する内容に向いています。返信はある種のリアクションと考えると良いでしょう。

発信側とメンバーの関係が対等ではないため、何らかのテーマに基づいたグループ会話などの用途には向いていません。

特殊な公開範囲で、他のサーバと連合する作りになっていますが、実質的にFedibirdと、このサークル機能に互換性のあるサーバでのみ使えます。(最新のMastodonは不具合で投稿を受け取れない状況が続いています。Misskeyとは互換性がありません)

サークルは、あらかじめ名簿を作成しておきます。

名前をつけて複数つくっておくことができます。

投稿する際は、この名簿のいずれかを宛先として選びます。

サークルの名簿には、自分をフォローしてくれていない人は選べません。(こちらから勝手に相手を選んで送りつけることはできません。少なくともフォローしてもらう必要があります)

投稿を行う際、名簿を投稿にコピーして利用します。あとから名簿を書き換えても、名簿を削除しても、既に行った投稿の宛先には影響を与えません。

クライアントアプリ実装では、サークルの名簿作成をフル実装してもいいですが、名簿作成はWebUIに任せ、投稿時にサークル名簿から選択してAPIパラメータにcircle_idを渡すだけでもOKです。

また、サークルの投稿はREST応答のvisibilityがprivate、visibility_exがlimitedになるので、limitedを認識するように実装し、返信をサポートする場合はメンションを付与せず、ダイレクト以外は強制でサークルメンバーへの返信になることを利用者に伝えてください。

なお『相互限定』は投稿時に相互フォローのメンバーをサークルとして自動生成する機能として実装されています。

そういえばこの前io独自アプデで一応BearcapsのURLのデータをfetchできるように https://github.com/MisskeyIO/misskey/pull/330 してありますが実際にサークル機能の投稿が届くのかは確認できていませんでした

@u1_liquid dereferenceしてデータベース上にnoteを記録するところまではうまくいってるけど、visibleUserIdsが空のvisibility: specifiedになるので誰も見られない、という感じかな。

shared_inboxじゃなくてユーザー毎のinboxに必要回数分だけbearcaps添えた投稿が届くので、初回はdereference(fetch)してvisibleUserIdsに追加、作成済みの時はvisibleUserIdsに追加するだけの処理して、見える人を追加してあげる必要があるかも。

タイムラインへのフィードとかはどうやってるか知らないけど、そこもみる必要あるかな?

うまくいけば、ホームにDMとしてみえるようになると思う。

なるほどー
bearcaps関係なくてもユーザー個別のinboxに届いた際の共通処理として入れておいてもよさそうですね
近いうちに連合できるようにしますー

@u1_liquid Mastodonはサイレントメンションという扱いで見える人の一覧を制御してるけど、MisskeyにvisibleUserIdsがあるならそっちでいいね。

元々はHubzillaから届くlimited visibilityのサポートのために(サークル以外では使わない)limitedがサポートされていたのね。bearcapsは使わないけど、宛先・メンション無しで個別inboxに直接届くっていう公開範囲があるの。

bearcapsは、サークル投稿そのものの配送というより、その返信を転送する際に、フォロー関係がない同士がやりとりできるようにする仕組みなので、新規サークル投稿・サークル返信をサポートしなければ今の実装で十分だよ。たぶんMisskeyからはDM扱いで、返信もDMになるだろうし。

そうですね、サークルの本格的なサポートとなるとMisskey側の機能としてはチャンネルの連合になると思いますが、(少なくともioだと)チャンネルは今のところ連合されていないのがある意味アドバンテージとして作用していて(外に漏れないからその分暴れてもいいとされている)いきなり連合させるのはちょっと違う気がしますね(するならデフォルトオフで設定可能になりそう)
現行通りサポートしない方向でも別に別ソフトのリモートのことなので気にしないユーザーも多そうではありますが、せっかく届いた投稿が見れないのはかなしいのでとりあえずDMとして見れるようにする予定です

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。