書き出した JSON の読み方

最終更新:2026年8月15日

書き出した JSON の読み方

「プライバシー」ページで自分のデータを書き出すを完了してダウンロードすると、swaymoon-passport-export.json という名前のファイルが得られます。本稿では、その中のフィールドの読み方を説明します。フィールドの集合は、ダウンロード時点の実際の内容が優先されます。ある区間が空配列または null の場合、その時点で対応する記録がなかったことを意味します。

テキストエディタまたは JSON ビューアでファイルを開けます。完全な書き出しファイルを信頼できない第三者に送らないでください。

トップレベル構造

書き出しファイルは JSON オブジェクトです。よくあるトップレベルキーは次のとおりです。

フィールド意味
accountIdあなたの Swaymoon アカウント内部識別子(文字列)。サードパーティアプリがこの値を直接受け取ることは通常ありません。アプリは各自のユーザー識別子(sub)を使います。
exportedAt書き出しが生成された時刻(UTC、ISO-8601。例:2026-08-06T02:15:30.123Z)。
profileプロフィール(ニックネーム、自己紹介、地域など)。
identifiers紐づけ済みのサインイン識別子(メール、電話番号、ユーザー名、サードパーティサインインなど)。
hasPasswordパスワードが設定されているか(真偽値)。true はパスワードサインインが使えることを意味します。パスワードそのものは含まれません。
authorizedAppsSwaymoon アカウント経由で許可したことがあるサードパーティアプリ。
sessionsその時点でまだ記録されていたサインインセッションの要約。
consentHistory同意台帳の記録(登録時の規約、サードパーティ許可など)。

profile:プロフィール

フィールド意味
nickname表示用ニックネーム
bio自己紹介
region国または地域
birthday誕生日(日付文字列。未入力なら null の場合あり)
gender性別コード(未入力なら null の場合あり)
usernameユーザー名(設定済みの場合)
avatarPathストレージ上のアイコンのパス識別子。外部から直接開ける完全な URL ではありません

未入力の項目は null または空文字列のことがあります。

identifiers:サインイン識別子

配列です。各項目はおおよそ次の形です。

{ "type": "EMAIL", "value": "you@example.com", "primary": true }
フィールド意味
type識別子の種類。よくある値:EMAIL(メール)、PHONE(電話番号)、USERNAME(ユーザー名)、GOOGLEGITHUB
valueその識別子の具体的な値(メールアドレス、電話番号など)
primaryメインの識別子かどうか。メイン識別子はサインイン時のデフォルトの身分表示や、許可時にプライバシーメールなどを選べるかに影響します

同一アカウントに複数の識別子を紐づけられます。メインになるのは通常 1 つだけです。

authorizedApps:許可したアプリ

配列です。各項目は 1 回(または 1 件の履歴)のサードパーティ許可記録に対応します。

フィールド意味
clientIdアプリのクライアント ID
clientNameアプリの表示名(登録時の名前)
firstGrantedAt初回許可の時刻(タイムスタンプ文字列)
relayAlias許可時にプライバシーメールを選んだ場合、エイリアスのローカル部分(@privaterelay.swaymoon.com を含まない)。未使用なら null
revokedAt許可を取り消済みなら取り消し時刻。まだ有効なら null

製品内でこれらの許可を管理する方法は「許可したアプリ」を参照してください。revokedAt に値があることは、Swaymoon アカウント側ですでに取り消したことだけを意味し、サードパーティが以前取得したデータを削除したことにはなりません。

sessions:サインインセッション

配列です。各項目はセッションの要約です(完全なセッショントークンは含みません)。

フィールド意味
createdAtセッション作成時刻
userAgentそのときに記録されたブラウザ / クライアントの User-Agent
remoteAddrそのときに記録されたおおよそのネットワークアドレス(セキュリティ監査用。現在のグローバル IP と一致するとは限りません)

不要なセッションは、Swaymoon アカウントのセキュリティ関連ページで終了できます。書き出しはスナップショットにすぎません。ダウンロード後に新規作成されたセッションは、古いファイルには現れません。

consentHistory:同意台帳

配列です。規約またはサードパーティ共有に対して行った同意関連の動作を記録し、「いつ、誰に、どの目的で」処理に同意したかを照合しやすくします。

フィールド意味
purpose目的コード。よくある例:terms_of_service(利用規約などの承諾)、third_party_sign_in(Swaymoon アカウントでサードパーティにサインイン)
recipient受け取り側:Swaymoon 自身、またはサードパーティの clientId
dataCategories関係するデータカテゴリの要約(カンマ区切り文字列。例:account または account_identifier,profile
crossBorder越境関連としてマークされているか(真偽値)
action動作の種類。よくある値は GRANTED(付与)または REVOKED(取り消し)
recordedAt台帳への記録時刻

台帳は透明性とコンプライアンスの記録用であり、サードパーティが有効なアクセストークンをまだ持っていることにはなりません。トークンがまだ使えるかは、許可が取り消されたか、トークンが期限切れかなどにも依存します。

読み方の例

以下は架空で、識別情報を除いた構造のスケッチです(値は実際の書き出しとは異なります)。

{
  "accountId": "acc_xxxxxxxx",
  "exportedAt": "2026-08-06T02:15:30.123Z",
  "profile": {
    "nickname": "小月",
    "bio": "你好",
    "region": "CN",
    "birthday": "1990-01-01",
    "gender": "unspecified",
    "username": "xiaoyue",
    "avatarPath": "avatars/acc_xxxxxxxx/…"
  },
  "identifiers": [
    { "type": "EMAIL", "value": "you@example.com", "primary": true },
    { "type": "USERNAME", "value": "xiaoyue", "primary": false }
  ],
  "hasPassword": true,
  "authorizedApps": [
    {
      "clientId": "app_demo",
      "clientName": "示例应用",
      "firstGrantedAt": "2026-07-01T10:00:00Z",
      "relayAlias": "abc123",
      "revokedAt": null
    }
  ],
  "sessions": [
    {
      "createdAt": "2026-08-05T12:00:00Z",
      "userAgent": "Mozilla/5.0 …",
      "remoteAddr": "203.0.113.10"
    }
  ],
  "consentHistory": [
    {
      "purpose": "terms_of_service",
      "recipient": "摇月 Swaymoon",
      "dataCategories": "account",
      "crossBorder": false,
      "action": "GRANTED",
      "recordedAt": "2026-06-01T08:00:00Z"
    }
  ]
}

セキュリティの助言

  • 書き出しファイルにはあなたを識別できる情報が含まれます。ローカルで暗号化して保存するか、安全な場所に置き、使い終わったら削除できます。
  • サポートに依頼するときは、通常は問題と期間を説明するだけで足ります。完全な JSON を自分から添付しないでください
  • 書き出しはある時点のスナップショットです。その後の許可、取り消し、プロフィール変更は、すでにダウンロードしたファイルには書き戻りません。最新の内容が必要なときは、再度書き出してください。

操作手順に戻るには「データの書き出しとアカウント削除」を参照してください。