ガイドラインとベストプラクティス
Mastodonアプリ開発者が従うべきガイドラインやベストプラクティス。
ログイン
**ユーザーはどんなMastodonサーバーにもログインできなければなりません。**つまり、フルハンドル(@alice@mastodon.tld)やサーバードメイン(mastodon.tld)を入力させてOAuth 2認証情報をアプリケーション登録APIから動的に取得してください。
ユーザー名
分散しているということをユーザーに明示してください。 このコンテンツやユーザーが他のサーバーから来ているということを確認できるようにすべきです。acct
(username + if remote: @domain)を表示させるなどがその一例です。
IDのハンドリングとソート
バニラなMastodonのエンティティIDはは整数として生成され、文字列にキャストされます。しかし、だからといって「IDは整数」というわけではありませんし、整数にキャストされるべきでもありません。そのようなことをするとあなたのクライアントアプリケーションが整数オーバーフローを起こしてしまします。常にIDは文字列として扱ってください。
つまり、IDは数字の文字列表現であるため、以下のようにして簡単に年代順に並び替えることができます。
- サイズで並び替える。より新しいstatusesはより長いIDを持っているはずです。
- 単語的に並び替える。より新しいstatusesは各位を比較して高い数字が少なくとも1つあるはずです。
フォーマット
プレーンテキストは外部サーバーからのコンテンツにはありません。そして、HTMLテキストのシンタックスルールはMastodonと他のFediverseアプリケーションの間で様々です。ステータスのコンテンツなどの特定の属性に対して、MastdonはサニタイズされたHTMLを提供します。
HTMLタグ
<p>
, <br>
, <span>
, <a>
のみを含む(1つのコンテンツにすべてが含まれているわけではありません)リッチテキストがステータスのコンテンツなどとして返されます。
メンションとハッシュタグ、カスタム絵文字
メンションやハッシュタグは<a>
タグです。これらのリンクになんらかの意味を与え、Webページとしてではなくアプリ内でプロフィールを開くなどの特別な処理を追加するために、タグとメンションに対してのメタデータがステータスに含まれます。
カスタム絵文字はショートコード形式(つまりプレーンテキスト)のままです。これに含まれるカスタム絵文字に関するメタデータはステータスに含まれます。画像を表示するには、ショートコードをテキストと照合する必要があります。
他のリンク
コンテンツ内のリンクはそのまま含まれます。URLのリダイレクト短縮は行われません。ただし、視覚的にはURLは23文字以内となるよう設計されています。そのために、リンクは次のようにマークアップされます。
<a href="https://example.com/page/that/is/very/long">
<span class="invisible">https://</span>
<span class="ellipsis">example.com/page</span>
<span class="invisible">/that/is/very/long</span>
</a>
invisible
は非表示に、中央のspanは表示されたままにすることを目的としています。中央のspanの後に省略記号(...
)を挿入するかはアプリ側が決定してください。
Filters
クライアントは、APIから返されたフィルターに基づいて独自のテキストフィルター処理を行う必要があります。ホームおよび通知に限定されるirreversible
(非可逆的除外)なフィルターに関してはサーバー側がフィルターを適用しまが、それ以外のものは、フィルター処理はクライアントが行います。
期限切れのフィルターはサーバーによって削除されません。それらは適用されるべきではありませんが、それらはまだサーバーによって保存されています。これらのフィルターを最終的に削除するのはクライアントです。
最終更新 February 12, 2020 · このページを改善する
他の言語:
English