Mastodon
  • Mastodonの使い方
    • Signing up for an account
    • Setting up your profile
    • Posting toots
    • Using the network features
    • Dealing with unwanted content
    • Promoting yourself and others
    • Set your preferences
    • その他の設定
    • Using Mastodon externally
    • Moving or leaving accounts
  • Mastodonの構築
    • マシンの準備
    • ソースからインストール
    • 環境設定
    • オプションのインストール
      • 全文検索
      • 秘匿サービス
      • シングルサインオン
    • セットアップを完了する
    • 開発者向けコマンドラインを利用する
    • 新しいバージョンへアップグレード
    • サーバのバックアップ
    • 新しいマシンへの移行
    • サーバーのスケールアップ
    • モデレーション
    • トラブルシューティング
  • アプリケーションの開発
    • Getting started with the API
    • Playing with public data
    • Obtaining client app access
    • ログイン
    • ガイドラインとベストプラクティス
    • ライブラリ等
  • コントリビューション
    • 技術的情報
    • 開発環境のセットアップ
    • ソースコードの構造
    • ルーティング
  • スペック
    • ActivityPub
    • WebFinger
    • Security
    • Microformats
    • OAuth
  • REST API
    • OAuthスコープ
  • API一覧
    • apps
      • oauth
    • accounts
      • bookmarks
      • favourites
      • mutes
      • blocks
      • domain_blocks
      • filters
      • reports
      • follow_requests
      • endorsements
      • featured_tags
      • preferences
      • suggestions
    • statuses
      • media
      • polls
      • scheduled_statuses
      • streaming
    • timelines
      • conversations
      • lists
      • markers
    • notifications
      • push
    • search
    • instance
      • trends
      • directory
      • custom_emojis
    • admin
    • proofs
    • oembed
  • APIエンティティ
    • Account
    • Activity
    • Admin::Account
    • Admin::Report
    • Application
    • Attachment
    • Card
    • Context
    • Conversation
    • Emoji
    • Error
    • FeaturedTag
    • Field
    • Filter
    • History
    • IdentityProof
    • Instance
    • List
    • Marker
    • Mention
    • Notification
    • Poll
    • Preferences
    • PushSubscription
    • Relationship
    • Report
    • Results
    • ScheduledStatus
    • Source
    • Status
    • Tag
    • Token

ガイドラインとベストプラクティス

Mastodonアプリ開発者が従うべきガイドラインやベストプラクティス。

ログイン

**ユーザーはどんなMastodonサーバーにもログインできなければなりません。**つまり、フルハンドル(@alice@mastodon.tld)やサーバードメイン(mastodon.tld)を入力させてOAuth 2認証情報をアプリケーション登録APIから動的に取得してください。

ユーザー名

分散しているということをユーザーに明示してください。 このコンテンツやユーザーが他のサーバーから来ているということを確認できるようにすべきです。acct(username + if remote: @domain)を表示させるなどがその一例です。

IDのハンドリングとソート

バニラなMastodonのエンティティIDはは整数として生成され、文字列にキャストされます。しかし、だからといって「IDは整数」というわけではありませんし、整数にキャストされるべきでもありません。そのようなことをするとあなたのクライアントアプリケーションが整数オーバーフローを起こしてしまします。常にIDは文字列として扱ってください。

つまり、IDは数字の文字列表現であるため、以下のようにして簡単に年代順に並び替えることができます。

  1. サイズで並び替える。より新しいstatusesはより長いIDを持っているはずです。
  2. 単語的に並び替える。より新しい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

Merch

Tシャツとステッカー(英語)

Mastodonに参加しよう · ブログ · ·

ソースコード · CC BY-SA 4.0 · インプリント