ローカル公開API - kmycode/mastodon GitHub Wiki

kmyblueでは独自の公開範囲「ローカル公開」があります。これは内部ではpublic_unlistedと表現されます。既存のクライアントアプリで表示崩れ・エラーを防ぐため、APIプロパティを分けています。

対応可否の判定方法

下記のエンドポイントで取得できるJSONについて

/api/v1/instance
/api/v2/instance

下記の配列に値があるかで判定してください

{
  "fedibird_capabilities": [
    "kmyblue_visibility_public_unlisted"
  ]
}

既存のオブジェクトに追加されたプロパティ

statusオブジェクトに以下のプロパティが追加されています。

{
  "visibility_ex": "(文字列)本来の表示範囲"
}

既存のプロパティvisibilityには、public unlisted private directのみが入ります。public_unlistedpublicに変換されます。visibility_exの中身もvisibilityと基本的には同一ですが、public_unlistedは変換されずそのまま入りますので、ここでローカル公開を判定可能です。

投稿

投稿APIを呼び出す場合、JSONの以下のプロパティに追加で指定できる値があります。public_unlistedを指定することで、その投稿は「ローカル公開」になります。

{
  "visibility": "public_unlisted"
}

注意事項

kmyblueには「サードパーティアプリから投稿するとき、公開投稿をローカル公開に変更する」というユーザー設定があります。クライアントアプリで「公開」「ローカル公開」を区別して投稿したい場合、この設定をユーザーがオフにする必要があります。

ただし、この設定はクライアントアプリが投稿時に以下のプロパティを追加することで回避できます。これは、ローカル公開を実装していないクライアントアプリが使用してはいけません。

{
  "force_visibility": true
}