見出し画像

【初心者版手順付き】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 API

Google Sheets APIは、スプレッドシートを読み書きするために使います。

Google Drive APIは、Drive上のファイルやフォルダを扱う場合に使います。

たとえば、スプレッドシートへの書き込みだけならSheets APIが中心です。

ただ、Driveフォルダに保存したり、ファイル一覧を扱ったりするならDrive APIも必要になります。


認証情報を作る

APIを有効にしたら、次に認証情報を作ります。

Google Cloud Consoleでは、主に以下のような流れになります。

APIとサービス
↓
認証情報
↓
認証情報を作成
↓
OAuth クライアント ID

OAuthクライアント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側の準備を確認する。

これだけでも、かなり手戻りを減らせると思いました。


この設定を実施したことで、データの保存が容易になり、次のステップでできるようになったことが増えました。
今回学習したことを活用しているので、次はこちらをご覧ください▼


いいなと思ったら応援しよう!