paint-brush
不変のマストドン ハンドルを持つby@nfrankel
1,334
1,334

不変のマストドン ハンドルを持つ

Nicolas Fränkel4m2022/12/22
Read on Terminal Reader

Mastodon は、Mastodon サーバーのフェデレーションであり、独立して実行され、接続されているという点で Twitter とは異なります。マストドン アカウントを作成する際の最初の問題は、正しいインスタンスを選択することです。処理は【WebFinger仕様】(https://www.rfc-editor.org/rfc/rfc7033)に準拠
featured image - 不変のマストドン ハンドルを持つ
Nicolas Fränkel HackerNoon profile picture

Twitter が崩壊するかどうかはまだわかりませんが、いくつかの兆候が示されています。いずれにせよ、私はMastodonへの投資を続けています。先週、Twitter と Mastodon の間で自分のコンテンツを同期する方法を紹介しました。


今週、自分のドメインに自分のプロファイル ページにリダイレクトする Mastodon ハンドルを設定しました。どのようにそれを達成したか、またまだ抱えている問題について説明したいと思います。

マストドン 101

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 であり、特定のドメインでホストされているプロファイルのユーザー名が含まれます。


-- WebFinger とは何ですか? なぜ使用するのですか?


上記によると、私のプロフィールを検索するときのクエリは次のとおりです: 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}" } ] }
  1. プロフィールへのURL
  2. マストドン用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です。


結論: 認証されていない場合にのみ、同じインスタンスのハンドルを照会できます。


ドキュメントでは、 resolvefalseの場合、クエリは WebFinger を使用しようとしないことが確認されています。


resolve


ブール。 WebFinger ルックアップを試みますか?デフォルトは false です。


--検索を実行します


結論

Mastodon と WebFinger の背後にある理論は興味深いものです。不変のマストドン ハンドル@[email protected]を設定することができました。これは、潜在的なフォロワーと通信できるハンドルです。別のサーバーに移動すると、新しい座標でwebfingerを更新します。


私のドメインで唯一の Mastodon ユーザーであるため、このトリックが機能します。複数ある場合は、 acct:パラメータに応じて異なる ID を返すために、静的ページを超えて移動する必要があります。残りは同じままです。


さらに進むには:




2022 年 12 月 18 日にA Java Geekで最初に公開された


UnsplashのShashank Ranaによる写真