Mastodonの認証リンクをユーザーが追加できるようにしたいのですが、手助けが必要です

プロフィールページにMastodonプロフィール認証リンクを追加しようとしています。

認証

プロフィールのメタデータにあるリンクの所有者として自身を認証できます。そのためには、リンク先のウェブサイトにMastodonプロフィールへのリンクが含まれている必要があります。そのリンクには必ず rel="me" 属性が必要です。リンクのテキストコンテンツは関係ありません。例を以下に示します。

<a rel="me" href="https://mastodon.social/@BartV">Mastodon</a>

Clickable Social Icon Links on Profile のTCをフォークしたところ、ユーザープロフィールページにMastodonリンクが正常に表示されました。しかし、Handlebarsテンプレートとしてレンダリングされるため、「HTML/JavaScriptなし」バージョンでは表示されず、Mastodonクローラーもそれを認識できません。

HTMLバージョンには以下のセクションがあることに気づきました。

<div class="user-crawler">
<img src='https://blenderartists.org/user_avatar/blenderartists.org/bartv/45/529382_2.png' alt='bartv' title='bartv' />
<h2 class='username'>bartv</h2>

テーマコンポーネントから、このセクションに必要なリンクを追加する方法はありますか?

「いいね!」 2

フッターに追加するだけでいいんじゃないかな。表示したくないなら、そのdivを隠すCSSを追加することもできるよ。

うまく説明できませんでした。ユーザーはMastodonのURLをカスタムフィールドとして入力でき、フォーラムの自分のプロフィールページに個人のリンクを追加したいと考えています。

「いいね!」 1

つまり、すべてのサイトがユーザーを認証できると提案しているのですね。では、mastodontti.fi にアカウントを持っていれば、そこにプロファイルを追加して認証を受けることができるということでしょうか。

まあ…それは、マストドンでの認証の背後にある考え方とは少し違います。

いや、そうではありません。あなたが他のサイトでもその人であることを示しているだけで、それ以上の意味はありません。GitHubも同様のものを準備しています。

とにかく、この件について議論するつもりはありません。質問の解決策を見つけようとしているだけです :slight_smile:

CSSを使用する必要はありません。単なるリンクなので、<a rel="me" ... ></a>で十分です。

それについて

はい、しかし、それはクローラーがアクセスできるようにする必要があります。Ember/HandlebarsスクリプトはJavascriptによってレンダリングされるため、機能しません。

あなたは論点をずらしています。その場合、公開されているマストドンサーバーを自由に使用できます。そして、あなたは「あるサイトのユーザー」という非常に広い定義を使用しています。

あなたの解決策が正しいかどうかを決定するため、あなたは議論しています。

そして、それはそうです。Aタグの開始と終了の間に空またはnilがあると、問題なく機能し、訪問者には表示されず、別のCSSルールを必要としません。

申し訳ありませんが、そうではありません。私のプロフィールページはこちらのMastodonアイコンの下にあるリンクをご覧ください。

要素を検査すると、rel="me"コードが表示されますが、ページソースを表示したり、wgetや同様のツールを使用してページを読み込んだりすると、クライアントサイドで生成されるため、そこにはありません。クローラーはそのコードを見ることができません。

そう言うなら…

フッターにHTMLを追加して自分だけを検証できることは知っていますが、ユーザーがMastodonのURLをカスタムフィールドとして入力できるようにし、それをプロフィールページに表示して、それを使って自分自身を検証できるようにしたいと考えています。

「いいね!」 2

念のため確認ですが、Discourseサイトを通じてユーザーがMastodonで本人確認を行えるようにしたい、ということでしょうか?例えば、こちらの記事で説明されているような方法です。Get verified on Mastodon with your website | Opensource.com?

もしそうであれば、ユーザーにリンクを通常の投稿またはプロフィールに追加するように促すことで、サイトのクローラービューに表示されるかもしれません。テーマコンポーネントからクローラーテンプレートをオーバーライドすることはできないと思います。Header Submenus - #134 by awesomerobot.

私が直面している問題は、Discourseが自動的にrel="me"属性をリンクから削除してしまうことです。これに対する回避策がない限り、プラグインを通じてAllowListerに属性を追加する必要があるかもしれません。Discourse/Mastodonの連携については詳しくありませんが、他のサイトにも役立つかもしれません。

「いいね!」 1

ああ、それは違いますね。

プロフィールページに表示するように設定されていれば(ページで利用可能になるように)、テーマコンポーネントを使用してプラグインのアウトレットに追加し、デフォルトの表示を非表示にするCSSを追加できると思います。

エディタを起動して既存のコードを確認しない限り、これ以上のことはわかりません。しかし、これは十分なヒントになるかもしれません。

それを試しましたが、問題は(おそらく)テーマコンポーネントは常にクライアントサイドでレンダリングされ、その出力はクローラーには表示されないということです。今はこのアイデアは保留にしておきます。頭が混乱してきました :slight_smile:

ああ!すみません。一度にすべてに注意を払うことができませんでした。はい。JavaScript を使用しないバージョンに追加するにはプラグインが必要になるため、Rails テンプレートをオーバーライドする必要があると思います。

「いいね!」 1