thegcat@kif.rocks をWebFingerするには……

kif.rocks/.well-known/host-met にアクセスして、toot.kif.rocks/.well-known/web{uri}を得る。

toot.kif.rocks/.well-known/web を呼ぶ

この時、subject: "acct:thegcat@kif.rocks" と、 aliases: [
"",
""
], が得られる(html用とjson用のhrefがlinksで得られるので見るのはこっちか)

acctとしてのkif.rocksドメインと、uri(id)、urlの到達可能なtoot.kif.rocksドメインを区別する。前者がLOCAL_DOMAINで、後者がWEB_DOMAIN。

ここまではいいのだが、このアカウントの情報を持っていない時に、uriやurlでアカウント情報を取得する場合、直接アカウント情報のjsonがとれるのだが、それでもWebFingerする。

この時、host-metaはこっちに取りに行く(tootサブドメインがついてるので、acctで検索するときと取得先が違う)
toot.kif.rocks/.well-known/hos

んで、templateに"toot.kif.rocks/.well-known/web{uri}"が返ってくるので、
toot.kif.rocks/.well-known/web
を呼ぶ。

そうするとsubjectがacct:thegcat@kif.rocksで、なんかドメインが違うので、もう一回リクエストするドメインを変えてWebFingerする。

kif.rocks/.well-known/webfinge

今度はacctとドメインが一致しているので、acctを設定する。

うっかりthegcat@toot.kif.rocksだとみなしてしまわないようにしないといけないのだが、手順が面倒くさいね! ま、WebFinger実装をカプセル化しとけばいいんだけども。

一つ前の投稿、不正確だったので書き直した。

フォロー

このへんは
github.com/mastodon/documentat
に書いてあることと、WebFingerの規格や実装みて理解することはできるんだけど……

まーバグりやすいね。みんなこんなん期待通りに実装してくれるだろうか……。

Mastodonのサーバを運用する人が注意した方がいいTIPSみたいな感じで、

- acctのドメインと公開するドメイン(LOCAL_DOMAINとWEB_DOMAIN)を別に設定するのはできるだけ避ける

- 国際化ドメイン名(日本語などを使ったドメインなど)はできるだけ避ける(これはついでに)

という情報は出しておいた方がいいかもしれん。使えるけど、バグや非互換でハマるケースはあるから覚悟してな! っていう。

なお、Mastodonのリレー実装で大文字小文字でハマったこともあるw

一見、簡単なようだけど、ちゃんと正規化しないといろんな不具合がおきて大変なのだわ。

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

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