相手先に合わせたActivity送るの、難しくないよ。fetchされた場合も、Authorized Fetch(署名付きリクエスト)だったらどのアカウントが要求してきたかわかる(実際にはサーバの代表アカウントで取りに来るので、せいぜいどのサーバか特定できるだけ)し。

例えば、投稿に画像が5枚以上添付されている場合に、4枚までしか対応していないサーバにだけ互換性持たせた内容に変えて送るとか。

ウチの実例でいうと、PleromaにはEmojiReact、MisskeyやMastodonにはLikeで絵文字を送るようなのは既にやってる。

フォロー

問題が起きやすいのはブーストだね。見ている内容と違うものが、他のサーバに送られる。

たとえばかわいい猫の写真だと思ってブーストしたら、他のサーバに届いたものがブラクラ系グロ画像ってこともあるわけ。

なんでもできるようにすると扱いが難しくなるね。

この、ブーストしたら違う内容になっててヤバイっていうのは、別に今回のこの変数置換するサーバだけの問題じゃなくて、

Mastodonの投稿編集機能を使って中身を入れ替えたって同じ事がおきる。

Mastodon同士なら編集内容が反映されてて履歴もみられるから問題おきないけど、

例えばMisskeyには編集内容が反映されないから、Misskey側でリノートしたら、他のサーバで見たらとんでもない内容に改変されてるかもしれない。

わざとやってるサーバや投稿者を排除することで解決する問題と、機能上の差異で起きる回避しにくい問題があって、

まあ前者は悪意の排除なので淡々とやればいいんだけど、

独自仕様を導入するときはこのへん凄く難しいし気を遣わないと厳しいね。

投稿編集機能を使った場合は、受け取ったタイミングで内容が変わるってことね。

ある投稿がされる(A1)

フォロワーのいるサーバには、最初の投稿内容(A1)が届く。

この元投稿が編集される(A2)

このタイミングでブーストされると、まだこの投稿を知らなかったサーバは編集後の内容(A2)を受け取る。

この元投稿がまた編集される(A3)

このタイミングでブーストされると、まだこの投稿を知らなかったサーバは最後の編集後の内容(A3)を受け取る。

投稿者はA3をみて欲しい。

でも投稿の編集を受信して処理できないサーバは、A1だったりA2の内容のままで、A3には更新されない。

あるいは、A1で騙して、A2やA3をつかませようとしている詐欺行為かもしれない。

ま、余談です。

ダジャレを検出しました(検出ワード: シャ, ジョウ, トキ)

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

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