Twitter が崩壊するかどうかはまだわかりませんが、いくつかの兆候が示されています。いずれにせよ、私はMastodonへの投資を続けています。先週、Twitter と Mastodon の間で自分のコンテンツを同期する方法を紹介しました。
今週、自分のドメインに自分のプロファイル ページにリダイレクトする Mastodon ハンドルを設定しました。どのようにそれを達成したか、またまだ抱えている問題について説明したいと思います。
Mastodon は、中央集権型ではないという点で Twitter とは異なります。これは、独立して実行され、接続された Mastodon サーバーのフェデレーション、つまり Fediverseです。正確に言うと、Fediverse は Mastodon ノード以上のものですが、そこまでは行きません。
Mastodon アカウントを作成する際の最初の問題は、正しいインスタンスを選択することです。私が最初に選んだのはmastodon.socialでしたが、当時は新しいアカウントを閉鎖していました。理由もなくmastodon.topに目を向けましたが、それは提案リストにあり、フランス語でした。
いつでもアカウントを別のインスタンスに移動してフォロワーを維持できるため、サーバーの選択はそれほど重要ではありません.元のサーバーにコンテンツを残す (そして失う) ことに注意してください。いずれの場合も、プロファイルはサーバーによって名前空間が割り当てられます。したがって、ハンドルが変わります。
現在、私は@[email protected]です。しかし、将来的にはfoojay.socialで友達に参加したり、自分のfrankel.social
を立ち上げたりするのでしょうか?どちらの場合も、ハンドルのサフィックスを変更する必要があります。
それでも、私は自分のハンドルを多くのサイトで公開しており、移行時に更新を忘れたくありません。したがって、ハンドルは不変でなければなりません。
マストドンのノードは Fediverse という名前のネットワークに属していると前述しました。 Fediverse ノードは、いくつかの異なるプロトコルを介して接続できます。 Mastodon ノードはActivityPubを使用します。その下で、ActivityPub は WebFinger に依存してハンドルの正しい位置を見つけます。
Mastodon は@[email protected]
をhttps://mastodon.top/web/@frankelに変換する必要があります。翻訳は、ドメインに関係なく、すべての Mastodon インスタンスで発生する必要があります。このプロセスは、RFC 7033 とも呼ばれるWebFinger 仕様に基づいています。
RFC 7033で説明されている WebFinger は、特定のサーバー上の URI のみを指定して、リソースへのリンクを解決する方法を定義する仕様です。これにより、リソースの正確な場所を事前に知らなくても、誰でもリソースの場所を調べることができます。たとえば、電子メールまたは電話番号で。このルックアップはエンドポイント
/.well-known/webfinger
に向けられ、resource
クエリ パラメータがルックアップとともに渡されます。 Mastodon で使用されるリソース URI は、 RFC 7565で説明されているacct:
URI であり、特定のドメインでホストされているプロファイルのユーザー名が含まれます。
上記によると、私のプロフィールを検索するときのクエリは次のとおりです: https://mastodon.top/.well-known/webfinger?resource=acct:[email protected] .ログインしている Mastodon インスタンスに移動し、私のハンドルを検索し、好みのブラウザーの開発者ツールを介してトラフィックを監視することで確認できます。
応答は次のとおりです。
{ "subject":"acct:[email protected]", "aliases":[ "https://mastodon.top/@frankel", #1 "https://mastodon.top/users/frankel" #1 ], "links":[ { "rel":"http://webfinger.net/rel/profile-page", #2 "type":"text/html", "href":"https://mastodon.top/@frankel" }, { "rel":"self", "type":"application/activity+json", "href":"https://mastodon.top/users/frankel" }, { "rel":"http://ostatus.org/schema/1.0/subscribe", "template":"https://mastodon.top/authorize_interaction?uri={uri}" } ] }
rel
カスタム ドメインで同じクエリに対して同じ応答を返すと、うまくいくはずです。それが私がしたことです: https://blog.frankel.ch/.well-known/webfinger?resource=acct:[email protected] .これは静的ページであり、アカウントは私だけなので、クエリ パラメーターは必要ありません: https://blog.frankel.ch/.well-known/webfinger .
これにより、 @[email protected]
(または任意のハンドル@frankel.ch
) を使用してhttps://mastodon.topを検索すると、期待どおりの結果が返されます。
https://mastodon.social/などの他のインスタンスを確認しましたが、機能しません。理由は簡単です。ログインしているインスタンスで検索すると、XHR はhttps://mastodon.top/api/v2/search?q=@[email protected]&resolve=true&limit=5です。そうでない場合はhttps://mastodon.top/api/v2/search?q=@[email protected]&resolve=false&limit=5です。
結論: 認証されていない場合にのみ、同じインスタンスのハンドルを照会できます。
ドキュメントでは、 resolve
がfalse
の場合、クエリは WebFinger を使用しようとしないことが確認されています。
resolve
ブール。 WebFinger ルックアップを試みますか?デフォルトは false です。
--検索を実行します
Mastodon と WebFinger の背後にある理論は興味深いものです。不変のマストドン ハンドル@[email protected]
を設定することができました。これは、潜在的なフォロワーと通信できるハンドルです。別のサーバーに移動すると、新しい座標でwebfinger
を更新します。
私のドメインで唯一の Mastodon ユーザーであるため、このトリックが機能します。複数ある場合は、 acct:
パラメータに応じて異なる ID を返すために、静的ページを超えて移動する必要があります。残りは同じままです。
さらに進むには:
2022 年 12 月 18 日にA Java Geekで最初に公開された