DuoBalance OAuth スパイク

drive.file + Picker / 何も公開せずに読めるか — 公開CSV版はこちら

0 — Google Cloud の設定値

現在のオリジン
取得のしかた(初回のみ / PCで5分)
  1. Google Cloud Console でプロジェクトを作る
  2. 「APIとサービス」→ ライブラリ で Google Sheets APIGoogle Picker API を有効化
  3. 「OAuth同意画面」→ 外部 → アプリ名などを入力。スコープは何も追加しないdrive.file は非機微なので登録不要)
  4. 「認証情報」→ OAuthクライアントID → ウェブアプリケーション
    承認済みのJavaScript生成元に このページのオリジン を追加
  5. 「認証情報」→ APIキー を作成(Picker用)
  6. プロジェクト番号は「ダッシュボード」か「IAMと管理 → 設定」に出ている

1 — サインイン

状態
スコープdrive.file
有効期限
所要時間

ここで「このアプリはGoogleで確認されていません」という警告が出ないことを確認する。 出たらスコープ設定が間違っている(drive.file 以外を要求している)。

2 — 無音での再取得(最重要)

結果
所要時間

アクセストークンは1時間で失効する。ここが通ればユーザーは何もしなくていい。 通らなければ、開くたびに1タップのサインインが要る。 iPhoneのSafariでこれを試すのがこのスパイクの目的

3 — スプレッドシートを選ぶ

選択中
ID
保存元

一度選べば drive.file の許可はそのファイルに残る。 次回以降 Picker を出さずに読めるかを「4」で確かめる。

3b — 許可済みファイルの一覧(files.list)

結果
見えたファイル数
所要時間

drive.fileアプリに許可されたファイルしか見えないはず。 ここにあなたのスプレッドシートが全部出てきたら異常で、スコープが効いていないことになる。 選んだ1件だけが出れば正常。
正常なら、ホーム画面PWAの初回起動でもPicker を出さずに前回のシートを選び直せる
この機能には Google Drive API の有効化が必要(Picker API とは別物)。

4 — Sheets API で読む

結果
HTTPステータス
所要時間
行数

保存済みのIDがあれば、Picker を経由せずにこのボタンだけで読めるはず。 ページを再読み込みしてから、いきなりこれを押して確かめる。

まとめ

警告なしでサインイン
無音でトークン更新
再訪でPicker不要
files.list が絞られている
Sheets API 読み取り
生値が取れる

ログ

起動しました。