【初心者版手順付き】CodexでGoogleスプレッドシートにつなぐ前に、Google Cloud Consoleでやったこと
Codexでアプリや自動化ツールを作っていると、途中でGoogleスプレッドシートにデータを保存したくなる場面があります。
たとえば、Xのトレンド収集結果、バナー生成の管理データ、実行ログ、分析結果などです。
最初は「スプレッドシートに書き込むだけ」と思っていました。
でも実際には、CodexからGoogleスプレッドシートを操作するには、Google Cloud Console側で準備が必要でした。
やることは、大きく分けると3つです。
1. Google Sheets API / Google Drive APIを有効にする
2. 認証情報を作る
3. クライアントIDやシークレットを安全な場所に保存するGoogle APIを使う場合、OAuth 2.0の認証情報としてクライアントIDやクライアントシークレットを取得します。Google公式でも、API ConsoleでOAuth 2.0の認証情報を取得すると説明されています。
まずGoogle Cloud Consoleでプロジェクトを作る
最初に、Google Cloud Consoleでプロジェクトを作ります。
すでに使うプロジェクトがある場合は、それを選んでも大丈夫です。
ここで注意したいのは、必ず対象のプロジェクトを選んだ状態で作業することです。
プロジェクトを間違えると、APIを有効にしたつもりでも、Codex側から見ると「APIが有効になっていない」状態になります。
Google Sheets APIとGoogle Drive APIを有効にする
次に、APIを有効にします。
今回必要になるのは、基本的にこの2つです。
Google Sheets API
Google Drive APIGoogle Sheets APIは、スプレッドシートを読み書きするために使います。
Google Drive APIは、Drive上のファイルやフォルダを扱う場合に使います。
たとえば、スプレッドシートへの書き込みだけならSheets APIが中心です。
ただ、Driveフォルダに保存したり、ファイル一覧を扱ったりするならDrive APIも必要になります。
認証情報を作る
APIを有効にしたら、次に認証情報を作ります。
Google Cloud Consoleでは、主に以下のような流れになります。
APIとサービス
↓
認証情報
↓
認証情報を作成
↓
OAuth クライアント IDOAuthクライアントIDは、Googleの認証サーバーに対して、どのアプリからのアクセスなのかを識別するために使われます。Google公式でも、OAuthクライアントIDはアプリを識別するためのものと説明されています。
ここで作成される主な情報が、以下です。
クライアントID
クライアントシークレットCodexでGoogle認証を使うアプリを作る場合、この2つを .env.local などの環境変数ファイルに保存して使うことが多いです。
クライアントIDとシークレットは安全な場所に保存する
作成したクライアントIDとクライアントシークレットは、すぐに安全な場所へ保存します。
たとえば、プロジェクト内では以下のように管理します。
C:\Users\user\project-name\.env.local中身の例は、こうです。
GOOGLE_CLIENT_ID=xxxxxxxxxxxxxxxxxxxx
GOOGLE_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxx
GOOGLE_REDIRECT_URI=http://127.0.0.1:3002/google/oauth/redirectこの情報は、コードに直接書かない方がいいです。
GitHubに上げたり、誰かに共有したりしたときに、認証情報まで外に出るリスクがあるからです。
なので、.env.local は .gitignore に入れて、Git管理から外します。
.env.local
secrets/初心者向けに一言でいうと
CodexからGoogleスプレッドシートにつなぐには、
Google側に「このアプリがスプレッドシートを使っていいですよ」と許可を作る必要があります。
そのためにやることは、これです。
APIを有効にする
認証情報を作る
IDやシークレットを保存する
.env.localやsecretsで安全に管理する
スプレッドシート側にも共有権限を付ける最初は少し面倒です。
でも、ここを雑にすると、あとで認証エラーや権限エラーで止まります。
Codexに実装を頼む前に、Google Cloud Console側の準備を済ませておくと、作業がかなり進めやすくなります。
今回のメモ
□ Google Cloud Consoleで対象プロジェクトを選ぶ
□ Google Sheets APIを有効にする
□ 必要ならGoogle Drive APIも有効にする
□ OAuthクライアントIDを作る
□ クライアントIDとシークレットを.env.localに保存する
□ サービスアカウントを使う場合はJSONキーを保存する
□ サービスアカウントJSONは再ダウンロードできないので注意する
□ .env.localとsecretsフォルダはGit管理に入れない
□ スプレッドシートをclient_emailに共有するスプレッドシート接続で詰まる原因は、コードだけではありません。
APIが有効になっていない。
認証情報が違う。
リダイレクトURIが違う。
スプレッドシートの共有権限がない。
こういう設定ミスでも止まります。
なので、Codexに「実装してください」と頼む前に、まずGoogle側の準備を確認する。
これだけでも、かなり手戻りを減らせると思いました。
この設定を実施したことで、データの保存が容易になり、次のステップでできるようになったことが増えました。
今回学習したことを活用しているので、次はこちらをご覧ください▼
