AI活用

Google OAuth「テスト中」は7日でトークン失効。本番公開の手順とGmail制限付きスコープの審査

Google OAuth「テスト中」は7日でトークン失効。本番公開の手順とGmail制限付きスコープの審査

Photo: Google for Developers (紹介目的で使用) via developers.google.com

おはようございます。まさきんです。

Google OAuth の公開ステータスが「テスト中」だと、リフレッシュトークンは7日で切れます。僕も健康データを取り込む個人用ツールで、この期限に気づきました。Gmail の制限付きスコープの審査とあわせて、本番環境に公開する手順を公式情報で整理しておきます。

※記事公開時点の情報です。最新の条件は公式サイトでご確認ください。

POINT
  • 公開ステータスが「テスト中」で外部向けのアプリは、リフレッシュトークンが7日で失効します
  • 個人ツールでも「本番環境」に公開すれば、7日の期限はかからなくなります
  • 公開にはホームページとプライバシーポリシーのURLが要ります。連絡先メールだけでは足りません
  • センシティブや制限付きのスコープは、本番でも審査前は未確認アプリの警告が出ます
  • 6か月未使用やトークン数の上限など、7日以外にも失効する条件があります

7日で切れる仕組み

まず結論からです。Google の公式ドキュメントに、次の趣旨の記載があります。

外部ユーザー向けで、公開ステータスが「テスト中」のプロジェクト。ここで発行されたリフレッシュトークンは、7日で失効します。

例外もあります。要求するスコープが名前・メールアドレス・プロフィールだけの場合です。具体的には userinfo.email や userinfo.profile、openid の範囲に収まるときですね。Google でログインするだけのアプリなら、7日の期限はかかりません。

裏を返すと、Gmail やカレンダーのデータを読むアプリは対象です。健康系のデータも同じですね。個人用のスクリプトでも、外部ユーザータイプなら同じ扱いになります。

「テスト中」と「本番環境」の違い

公開ステータスは、Google Auth Platform の「対象」の画面で確認できます。以前の「OAuth 同意画面」にあたる場所です。2つの状態の違いをまとめると、次のとおりです。

項目テスト中(Testing)本番環境(In production)
使える人登録したテストユーザーだけGoogle アカウントを持つ全員
テストユーザーの上限100人までなし
同意の有効期間同意から7日で失効7日の期限なし
リフレッシュトークン7日で失効他の失効条件にかかるまで有効
同意前の警告テストアクセスの警告が出るセンシティブなスコープは審査前に警告
審査対象外スコープによっては必要

テスト中は、あくまで開発用の状態という位置づけです。テストユーザーに加えた人だけが同意できて、その同意も7日で切れます。

一方で本番環境は、誰でも同意できる状態です。毎日自動で動かす個人ツールなら、本番環境のほうが運用に向いているかもしれません。

僕のツールで起きていたこと

僕のツールは、Google の Health 系の API を使っていました。プロジェクトの公開ステータスは「テスト中」のままでした。

なので、手元のリフレッシュトークンは発行から7日で切れる予定でした。切れると、自動の取り込みが止まってしまいます。そこで、ブランディングを埋めて「本番環境」に公開することにしました。

本番環境に公開する手順

公式ヘルプの流れと、僕が実際に通った順番をまとめます。

  1. Google Cloud コンソールを開き、画面上部のプロジェクト選択を確認する
  2. Google Auth Platform の「ブランディング」を開く
  3. アプリ名とユーザーサポートのメールを確認する
  4. アプリのホームページとプライバシーポリシーのURLを入れる
  5. 承認済みドメインに、そのURLのドメインを追加する
  6. デベロッパーの連絡先メールを入れて保存する
  7. 「対象」の画面で「アプリを公開」を押し、確認画面で進める
  8. 公開ステータスが「本番環境」になったことを確かめる
  9. ツール側でもう一度同意し、リフレッシュトークンを取り直す

公式ヘルプでは、承認済みドメインを先に登録するよう案内されています。ホームページなどのURLより前に入れておくと、手戻りが少ないかもしれません。

途中でつまずいた2つのこと

プロジェクトを取り違えていた

最初のつまずきは、地味なところでした。開いた Google Cloud コンソールが、別のプロジェクトだったんです。ブログのアクセス解析用に作ったほうでした。

Google Cloud のコンソールは、最後に開いたプロジェクトを覚えています。なので、何も考えずに開くと別の場所にいることがあります。画面上部のプロジェクト名を、作業の前に一度見る。これだけで防げる話でした。

個人でプロジェクトを複数持っていると、名前が似てきますね。用途がわかる名前にしておくのも、地味に効く対策かもしれません。

連絡先メールだけでは公開できない

2つめは、公開ボタンが有効にならなかったことです。最初は連絡先のメールだけ入れていました。

公開には、アプリのホームページとプライバシーポリシーのURLが必要でした。公式ヘルプにも、外部向けの本番アプリにはこれらのリンクが必須とあります。リンクが欠けていると、審査に出すこともできないそうです。

公開に必要だったもの

ブランディング画面で求められる項目を、公式ヘルプをもとに整理します。

項目内容公式ヘルプでの扱い
アプリ名同意画面に出す名前Google の商標と紛らわしい名前は不可
ユーザーサポートメール利用者からの問い合わせ先自分のアドレスか自分が管理するグループ
アプリのホームページアプリを説明するページ外部向けの本番アプリでは必須
プライバシーポリシーデータの扱いを書いたページ外部向けの本番アプリでは必須
利用規約アプリの規約ページ任意
承認済みドメイン上のURLのドメインURLを入れる前に登録する
デベロッパーの連絡先Google からの通知先最新に保つよう案内あり
ロゴ同意画面のアイコン本番では審査後に表示

ロゴは任意です。ただ、本番の外部向けアプリでロゴを上げると審査が必要になります。個人ツールなら、空けておくほうが手間は少ないと思います。

ホームページとポリシーに何を使うか

僕は、ホームページとプライバシーポリシーに自分のブログのページを使いました。承認済みドメインには otokuken.com を追加しています。

公式ヘルプには、審査を受けるときの要件も書かれています。ホームページは自分が所有する確認済みドメインに置くこと。プライバシーポリシーはホームページと同じドメインに置き、ホームページからリンクすること。ポリシーには Google のユーザーデータの扱いを書くこと、などです。

審査を受けないなら、ここまで厳密でなくても公開はできるかもしれません。ただ、あとで審査が必要になる可能性もあります。最初から要件に寄せておくと安心ですね。

スコープによっては審査が要る

本番環境に公開しても、すべてが自由になるわけではありません。鍵になるのはスコープの区分です。

スコープの区分審査審査前の動き
非センシティブ不要(名前とロゴを出すならブランド審査)警告なしで同意できる
センシティブ必要未確認アプリの警告が出る
制限付き必要。加えて年1回のセキュリティ評価未確認アプリの警告が出る

区分は、Cloud コンソールでスコープを追加したときに自動で表示されます。自分のアプリがどれに当たるかは、そこで確かめられます。

一方で、個人利用のアプリには例外があります。公式ヘルプでは、利用者が100人未満の個人用アプリは審査なしで使い続けられるとされています。その場合、利用者はログイン時に未確認アプリの警告を押して進む形です。

未確認アプリの警告とユーザー上限

審査前にセンシティブなスコープを求めると、同意画面の前に警告が出ます。「このアプリは Google で確認されていません」という趣旨の画面です。

もう一つ、ユーザー数の上限もあります。未確認アプリの画面を出すアプリは、新規ユーザーが合計100人までです。この上限はプロジェクトの全期間に適用され、リセットできないと書かれています。

自分だけで使うツールなら、この上限が問題になることはまずないかもしれません。ただ、家族や知人にも使ってもらうなら人数は意識しておきたいところです。

定期的に切れるものや更新が要るものを棚卸しするなら、毎月の通信費も一緒に見直すのはいかがでしょうか。固定費全体が少し軽くなるかもしれません。

契約しなくても必ず100ポイントもらえるシミュレーション 楽天モバイルでスマホ代を見直してみる

押すと楽天のログインページが開きます。ログイン後にキャンペーン内容が表示されます。

7日以外にトークンが切れる条件

本番環境にしても、リフレッシュトークンは永久ではありません。公式ドキュメントにある失効の条件をまとめます。

条件内容
利用者がアクセスを取り消したGoogle アカウント側でアプリの接続を外した場合
6か月使っていないリフレッシュトークンを6か月使わなかった場合
パスワードを変えたGmail のスコープを含むトークンの場合
トークン数の上限1アカウント・1クライアントIDあたり100個まで
時間制限つきの許可期間を区切って許可し、その期間が過ぎた場合
管理者の制限Workspace 管理者がサービスを制限した場合
セッション制御Google Cloud の組織でセッションの長さが決められている場合

特に気をつけたいのは、トークン数の上限です。上限に達すると、一番古いトークンが警告なしに無効になります。試しに何度も同意し直すと、本番で使っていたトークンが消えることもありそうです。

全体の上限もあり、公式では許可するクライアントを1アカウント15〜20程度に抑える回避策が紹介されています。

トークンを取り直す

本番環境に公開したら、次はトークンの取り直しです。テスト中に受けた同意は、同意から7日で切れると公式に書かれています。なので公開後に、本人がもう一度同意する操作が必要になります。

僕の場合も、取り直しはこれからです。ツールの認証フローを動かして、ブラウザで同意し直す予定です。

取り直したら、古いトークンは使わないようにしておくとよさそうです。新しいほうを保存先に書き換えて、古いほうは消す。保管場所が複数あると、どれが生きているかわからなくなるかもしれません。

よくある失敗・落とし穴

ここまでの話を、ありがちな失敗としてまとめておきます。

失敗起きること防ぎ方
別のプロジェクトで作業する設定が反映されない作業前にプロジェクト名を見る
URLを入れずに公開しようとする公開ボタンが押せないホームページとポリシーを先に用意
承認済みドメインを後回しにするURLの登録で止まるドメインを先に追加する
公開しただけで安心する古いトークンが7日で切れる公開後に同意を取り直す
何度も同意し直す古いトークンが警告なしに無効化取り直しは必要なときだけ
半年動かさないトークンが失効する定期的に動く仕組みにする

個人ツールは、止まっても誰も教えてくれません。なので、失効したときにエラーで気づける作りにしておくのも大事だと思います。

無料枠の上限で止まる話は、Cloudflare Workers無料枠のCron Triggers上限に当たったときの逃げ方にもまとめています。個人の自動化は、こういう「静かに止まる」ところが一番の弱点かもしれません。

始める前に確認すること

注意

テスト中に受けた同意は、同意から7日で切れると公式にあります。本番環境に公開しても延びないと考えておくのが安全です。公開後は、同意し直してトークンを取り直してください。

自動化の全体像は朝の身支度中に、AIに1枚の『今日のブリーフィング』を作らせている話にも書いています。こうした仕組みも、裏ではトークンに支えられているんですよね。

よくある質問

Q. テスト中のままだと、どのくらいでトークンが切れますか?

外部ユーザー向けでテスト中のプロジェクトでは、7日で失効します。同意した時点から数えて7日です。名前・メール・プロフィールだけのスコープなら、この期限はかかりません。

Q. 個人で使うだけでも本番環境に公開してよいですか?

公開できます。公式ヘルプでも、利用者が100人未満の個人用アプリは審査なしで使い続けられるとされています。ただ、センシティブなスコープでは未確認アプリの警告が出ます。

Q. 公開ボタンが押せないのはなぜですか?

ブランディングの必須項目が欠けている可能性があります。外部向けの本番アプリには、ホームページとプライバシーポリシーのURLが必要です。承認済みドメインの登録も確かめてください。

Q. 公開すれば今のトークンもそのまま使えますか?

テスト中に受けた同意は、同意から7日で失効すると公式にあります。なので、公開後に同意し直してトークンを取り直すのが確実です。取り直しには本人の操作が必要です。

Q. 審査は必ず受けないといけませんか?

センシティブや制限付きのスコープを一般に向けて使うなら、審査が必要です。個人用で100人未満なら、審査なしで使い続けられる例外があります。制限付きのスコープは、年1回のセキュリティ評価も求められます。

Q. テストユーザーは何人まで登録できますか?

テスト中のプロジェクトでは、テストユーザーは100人までです。一度追加すると、その人数分の枠を使う扱いになります。

Q. 本番環境ならトークンはずっと使えますか?

ずっとではありません。6か月使わなかったときや、利用者がアクセスを取り消したときに失効します。1アカウント・1クライアントIDあたり100個の上限もあります。

Q. ロゴやアプリ名は同意画面に表示されますか?

アプリ名やロゴの表示には、審査が必要と公式ヘルプにあります。審査前は、アプリのドメインが表示される形です。個人ツールなら、ロゴを上げないほうが手間は少ないかもしれません。

参考にした公式情報

まとめ

リフレッシュトークンが7日で切れる原因は、公開ステータスの「テスト中」でした。個人ツールでも、本番環境に公開すればこの期限は外れます。

必要だったのは、ホームページとプライバシーポリシーのURLでした。あとは承認済みドメインの登録ですね。あとはプロジェクトの取り違えに気をつけること。僕はここから、トークンの取り直しに進みます。

自動で動いている仕組みがあるなら、一度ステータスだけでも見てみてください。

契約しなくても必ず100ポイントもらえるシミュレーション 楽天モバイルの料金プランを確認してみる

押すと楽天のログインページが開きます。ログイン後にキャンペーン内容が表示されます。

本記事にはアフィリエイト広告を含みます。当サイトのリンクを経由して商品・サービスへお申し込みいただいた場合、提携先企業から成果報酬を受け取ることがあります。 また、運営者は楽天グループに所属する社員であり、紹介プログラムを通じた報酬を受け取る場合があります。記事内容・評価は広告の有無にかかわらず、運営者の実体験と調査に基づき作成していますが、 上記の関係性をご理解のうえお読みください。詳しくは免責事項・アフィリエイト表記をご覧ください。

楽天モバイルの通信エリア・電波状況について気になることがある方は、公式の電波改善・調査依頼フォームからご相談いただけます。

ABOUT THE AUTHOR
まさきん

楽天グループ勤務・デジタルマーケター(FP資格保有)

40代前半、共働き・四児の父。楽天グループでデジタルマーケターとして勤務するかたわら、ファイナンシャルプランナー(FP)の資格を活かして家計管理と資産形成にも力を入れている。

プロフィールを見る

関連記事

RELATED
Gemini(Google AI Pro)のファミリー共有は家族5人まで。設定手順と範囲 AI活用

Gemini(Google AI Pro)のファミリー共有は家族5人まで。設定手順と範囲

Google AI Proは管理者のほか家族5人まで共有できます。Geminiアプリとストレージは共有でき、YouTube Premium Liteは管理者のみ。Flowの上限は家族で分け合います。設定手順と子どものアカウントの扱いを公式ヘルプで整理しました。

2026.10.13 · 読了 13分
AIサブスクの請求日と家計簿がずれる3つの理由|Claudeはアップグレードで請求日が変わる AI活用

AIサブスクの請求日と家計簿がずれる3つの理由|Claudeはアップグレードで請求日が変わる

Claudeは月の途中でMaxへ上げると請求サイクルがリセットされ、その日が新しい請求日になります。ドル建ての円換算はカード会社にデータが届いた時点で決まり、明細や家計簿の反映は数日遅れます。領収書メールを正本に月を決める5つの手順をまとめました。

2026.10.13 · 読了 13分
freee会計の未処理明細を月1回の消込便に。毎月5日7:30・3区分・上限15件で人に回す設計 AI活用

freee会計の未処理明細を月1回の消込便に。毎月5日7:30・3区分・上限15件で人に回す設計

freee会計の未処理明細が18件ほど、週次の確認6回ぶん動かないまま残っていました。毎月5日の朝7:30に自宅Macで動かす消込便の設計と、確定できる分は月1件・迷う明細は1件ずつ上限15件で人に回す線引きをまとめます。

2026.10.12 · 読了 13分
楽天モバイルに乗り換えで最大14,000ポイント 契約しなくても必ず100ポイントもらえるシミュレーション →
いますぐエントリー →