@noellabo 実装するわけではないのでただの興味本位なのですが、Mastodonにおける"account_id"って、同一人物でもサーバーごとに異なるものが振られて管理されているのでしょうか?
@kussy_tessy そうです。account_idはサーバ固有です。
たとえば私のaccount_idは1ですが、そんな番号になるのは、もちろんサーバごとだからです。
ActivitiPub全体でのIDは、URI形式で https://fedibird.com/users/noellabo になります(リンクに変換されるので画像もつけておきます)。
@noellabo SubwayTooterで叩いているAPIが見えるんですけど、何回か異なるAPIを叩いているみたいなんですよね。必然的に通信回数は増えるものの、サーバー間の違いやアカウントの違いををあまり意識せずにフォローやブーストができるの、うまくできている仕組みだなあ……。
@noellabo ということは、基本的にはaccount_idの一番大きい数字が「fedibirdが知っている全てのActivityPubアカウント数」ってことになりますね?
@kussy_tessy Mastodonの途中のバージョンまでは連番だったんだけど、途中から推定しづらいSnowFlakeと呼ばれるID形式に変わっています。
大小比較はできるので、ID同士でどちらが新しいものかは判定できるんですが、桁はムチャクチャ大きくなっているので、そこから総数はさっぱりわかりません!
@noellabo Snowflake ID - Wikipedia https://en.wikipedia.org/wiki/Snowflake_ID
SnowFlake初めて聞きました! なにげにTwitterが開発した方式ってのが皮肉ですね……w(技術とサービスは別とはいえ)
@kussy_tessy twitter-textっていう、URLやIDを抽出したり文字数数えたりするライブラリも使ってますよ。そんなにアンチじゃないですw
@noellabo そう考えると、Twitterが築き上げたものって大きかったんだなあ、って感慨深くなりますね。
@kussy_tessy うん、そうそう。
クライアントアプリ書くときは特にそうなんだけど、サーバをまたいだマルチアカウント対応して、違うサーバのアカウントでブーストするとか、サーバを跨いだ操作をしたくなることがあるんで、そういうときに違うサーバのaccount_idとかstatus_idを調べないといけないのね。
ユーザー操作に対応する場合は、別に検索用のAPIも使えるんだけど、だいたいそんな感じ!