こういう表記、知ってますか?
> Mozilla / 5.0 (X11; Linux x86_64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 51.0.2704.103 Safari / 537.36
これ、HTTPでサーバとやり取りする際に、ブラウザが自分自身の名前を応答する際の文字列(UserAgent)なんですが、
これも伝統的に名前で判別して動作が変わったり、受け入れが決まったりするので、
MozillaではないのにMozillaと名乗ったり、AppleWebKitとかKHTMLとかGeckoとかChromeとかSafariとか、とにかく名前をずらずら並べて検知されるように工夫せざるを得なくなり、大変醜い姿になり果てています。
NodeInfoの名前で動作を決めるようにすると、FedibirdもMastodonととりあえず名乗っておかないと相手にされなくなりますし、
もともとMastodonとは全く異なるソフトウェアも、MastodonのフリをするためにMastodonを名乗るようになります。そうせざるを得ないので。
まあまあ最悪なので、名前で判別するのはやめてください、というお話です。
Fediverse(広義)のサーバは、自分自身のソフトウェア名やバージョン、状態、対応機能などの情報をNodeInfoという形式で提供しています。
fedibird.comのNodeInfoはこれです。
https://fedibird.com/nodeinfo/2.0
クライアントアプリを実装する際、この情報を元に、指定したドメインがActivityPubのサーバであるか、どのソフトウェアかを調べ、それに応じた対応をすることができます。
ただし、ソフトウェアの名称を頼りに判別を行うと、よく知られたあらかじめ対応しているアプリならいいのですが、マイナーな実装、新規の実装は無視されることが多くなります。
実際は、ActivityPubサーバであることだけを確認し、それぞれのAPIを呼び出して応答するか確かめるようにすべきで、
そうすると、MastodonのAPIと互換性のあるサーバソフトウェアであれば、アプリ側が知らないサーバソフトウェアであったとしても、対応できるようになります。
ただし、クライアントアプリ側の事情として、未知の実装で不具合が出た際に、互換性のクレームがアプリ開発者側に来るという問題があり、避けたいというケースもままありますので、意図的に対応しないこともあります。
#fedibird #fedibird_info いくつかの更新を適用しました。
・フィルターの登録時に稀にサーバエラーになることがある不具合を修正しました
・ダイレクトなど公開範囲によってActivityPub表現のccがnullになることがあったのを修正しました(空の配列になります)
・投稿のバックアップ(アーカイブ)の形式をMastodon4.2以降のzip形式に変更し、アーカイブリーダーのMARLで直接扱えるよう変更しました [参照]
Pawooサポートの紹介していたクライアントアプリFlareですが、
現在、Fedibird、kmyblue他、gotosocialやholloなどMastodon API互換のサーバソフトウェアでは利用できません。
サーバソフトウェアの種別をNodeInfoが返す文字列で判別しており、Mastodon決め打ちになっています。
アプリ側の対応で改善するまでお待ちください。
直接編集して履歴残すやつと、
削除して編集するやつは、
似てるけど、違う機能だからねえ。
みんなサ終してる。私もサ終したい(したくはない)
主に、Fediverseへの関心に基づいた投稿を行うアカウントです。DTP・印刷に関する話をしたり、同人の話をしたり、カレーをブーストしたりします。
Mastodonのcollaborator(開発者の一員)です。また、独自機能を盛り込んだFedibirdを管理・開発しています!
Mastodonサーバ『fedibird.com』の管理者アカウントでもあります。ご連絡は当アカウントへ、サーバインフォメーションについては https://fedibird.com/about/more と @info を参照してください。