# ANA航空券ダッシュボード（自動取得版）

Gmailに直接サインインし、「●国内航空券」ラベル内のeチケットお客様控PDFをブラウザ内で自動解析します。
サーバーは存在せず、GitHub Pagesの静的配信のみで動作します。データはブラウザとGoogleの間だけでやり取りされます。

## できること

- Gmailの指定ラベル内メールを一覧取得
- eチケットお客様控PDFから、予約番号・搭乗者・航空券番号・発行日・便名・搭乗日・支払額・株主優待番号・登録用パスワードを自動抽出
- 表のソート、優待番号・パスワードのクリックコピー

## できないこと（意図的にスコープ外）

- 予約変更履歴の追跡（同一PNRの変更を辿る処理）
- 株主優待番号の使い回し検知（払戻→再利用の推測）
- 電話キャンセルの推定などの高度な判断
- こうした分析が必要な場合は、この一覧をコピーしてClaudeに相談してください。

## セットアップ手順（初回のみ・ご自身のGoogleアカウントで実施）

### 1. Google Cloud ConsoleでOAuthクライアントIDを発行する

1. https://console.cloud.google.com/ にアクセスし、新しいプロジェクトを作成（または既存のものを選択）
2. 左メニュー「APIとサービス」→「ライブラリ」から **Gmail API** を検索し、有効化する
3. 「APIとサービス」→「OAuth同意画面」で、User Type を「外部」にして作成
   - アプリ名・サポートメール等を入力（自分専用アプリなので適当でOK）
   - スコープは追加不要（コード側で `gmail.readonly` を要求します）
   - テストユーザーに、ご自身のGmailアドレス（mitsuru02@gmail.com）を追加
4. 「APIとサービス」→「認証情報」→「認証情報を作成」→「OAuthクライアントID」
   - アプリケーションの種類：**ウェブ アプリケーション**
   - 承認済みのJavaScript生成元に、GitHub PagesのURL（例: `https://mitsuru02-svg.github.io`）を追加
   - 作成すると「クライアントID」が表示されます（`〜.apps.googleusercontent.com`という文字列）

### 2. クライアントIDを設定する

`config.js` を開き、以下の行を書き換えてコミット・プッシュします。

```js
const GOOGLE_CLIENT_ID = "ここに取得したクライアントIDを貼り付け";
```

### 3. GitHub Pagesを開く

リポジトリの Settings → Pages で公開されているURLにアクセスし、「Googleでサインイン」からログインしてください。

## 注意事項

- OAuth同意画面が「テスト」モードのままだと、テストユーザーに登録したアカウントのみログインできます（個人利用なら問題ありません）。
- 初回ログイン時、Googleの警告画面（「このアプリは確認されていません」）が出ますが、自分が作成したアプリなので「詳細」→「（アプリ名）に移動」で進めます。
- アクセストークンはブラウザのメモリ上にのみ保持され、ページを閉じると消えます（再ログインが必要です）。
