見出し画像

人生で初めてGPTsにGAS連携してみたらGCP設定が大変だった

人生で初めてGPTsにGAS(Google Apps Script)を連携してみたら、GCP(Google Cloud Platform)のAPI周りでつまづきまくり大変でした。
私のようなゴリゴリ文系のプログラミングしたくない勢からすると、そもそもの「設定」が大変なんですね。
普段使っている人ならおそらくなんてことは無いであろう、「プロパティ」とか「コンソール」とか「権限」とか「認証」とか、そういう所がイチイチつまづいたけど、何とかできたので記念に記録を残しました。



1.やってみたかったこと

最近、今更と言われるかもですがGPTsの構築にはまってます。
色々とやる中でやっぱりドキュメントを作成したいので、下の有料記事を参考にGAS連携をしてみたい!と思って始めました。

正直、Chat-GPTのサポートが無かったら秒で諦めてました。

2.GPTsにはコピペ完了!動かしたら403エラー

まずは、他のGPTs同様に作成画面上で指示を入れて、GASにもコードをコピペして、「完了!」と思ったら403エラーで全く動きませんでした。
どうやらAPIの設定の問題で作動していないらしいです。(この時点でChat-GPTに聞きまくり)

ちなみにこの時のChat-GPTからのインストラクションは↓です。
わかるようでさっぱりわからん。。

ステップ1: GCPプロジェクトの作成

Google Cloud Consoleconsole.cloud.google.com)にアクセスし、ログインします。
「プロジェクトを選択」をクリックして、新しいプロジェクトを作成します。
プロジェクト名を入力し、「作成」をクリックします。

ステップ2: APIの有効化

作成したプロジェクトを選択します。
「ナビゲーションメニュー」>「APIとサービス」>「ダッシュボード」に移動します。
「APIとサービスを有効化」をクリックします。
使用したいAPI(この場合はOpenAI APIか、該当するGPT関連のAPI)を検索し、選択します。
「有効にする」をクリックしてAPIを有効化します。

ステップ3: 認証情報の作成

「ナビゲーションメニュー」>「APIとサービス」>「認証情報」に移動します。
「認証情報を作成」をクリックし、「サービスアカウント」を選択します。
サービスアカウントの詳細を入力し、「作成」をクリックします。
必要に応じて役割を付与し、「続行」をクリックします。
「完了」をクリックします。
作成したサービスアカウントの「アクション」列から「鍵を管理」を選択し、「鍵を追加」>「新しい鍵を作成」を選択します。
「JSON」を選択し、「作成」をクリックします。鍵ファイルがダウンロードされます。

ステップ4: Google Apps Scriptの設定

Google Apps Scriptのエディタ(script.google.com)にアクセスし、新しいプロジェクトを開始します。
「ファイル」>「プロジェクトのプロパティ」>「スクリプトのプロパティ」に移動し、ダウンロードしたJSON鍵ファイル内の情報(例: client_emailprivate_keyなど)を追加します。
GCP APIへのリクエストを行うための関数をスクリプトに追加します。UrlFetchAppを使用してHTTPリクエストを行い、ScriptApp.getOAuthToken()で認証情報を付加します。

ステップ5: GASからGCPAPIを呼び出す

GASからAPIを呼び出す際には、適切なエンドポイントと認証情報を使用してHTTPリクエストを行います。サービスアカウントの鍵を使ってOAuth 2.0認証を行い、APIリクエストに必要なトークンを取得します。
これらのステップを踏むことで、GASGCPのサービス間で認証されたAPIリクエストを行うことが可能になります。ただし、上記の説明は一般的なガイドラインであり、使用するAPIや具体的な要件によって細かい手順が異なる可能性があります。そのため、APIのドキュメントやGCPの公式ドキュメントを参照することが重要です。"

3.Chat-GPTのサポートしてもらって設定する道のり

3-1 GASからGCPへ

一歩ずつ…ということで、誘導されるがままに、人生で初めてGoogle Cloud Platformの設定画面を開きます。

そもそもGoogle Apps Scriptも初めてなのに、Google Cloud Platformの新規作成だなんて…

「プロジェクトを変更」から新規作成でGCP画面へ飛びました。

3-2 GCPでAPIサービスを有効化する

そもそも、GCPの中で新しいプロジェクトが必要だったらしいです。
今のところの理解だと、GPTがAPI経由でリクエストをするので、そのAPIの制御はGASではなくGCPで行うってことですかね。

プロジェクトを作成して、APIメニューを開きます

何かとドキドキして躊躇する
たまにChat-GPTが言うメニュー構成と違うし…

ここも言われるがままですが…「APIとサービスを有効にする」から

使いそうなAPIを有効化します。

Google Docを有効化

ちなみに訳が分かってないので、色々と他も有効化してみましたが、どうやら1プロジェクトに1つで整理したほうが良さそう(後から判明)

3-3 APIの認証の作成…ちょっと怖い

さて次は「認証」らしいです。が、さっぱりです。
ここも言われるがままに…でもそもそもどれを作成すれば良いかわからない。
とりあえず「中学生にわかるレベルで教えて」って聞きます。

どんな意図で作ってるかも教えるとおススメしてくれました

最初は「サービスアカウント」を作成しました。
(後からだと)実は「APIキー」のみで出来るのではって話もあったらしい

権限って怖い…

JSONの鍵を生成しろといわれたので作成します

鍵が他人に秘密にすべきってことは知ってます

3-4 認証情報をGASへ還元

GASの設定画面上で、鍵のJSONファイルから必要な情報を抜き出して、「スクリプトプロパティ」に入力すれば良いって言われたので実行できました。

ここも指示と画面が違ったり、入力に「”」をいれるかで難航

3-5 よっしゃと思ったら繋がらない…

ここでChat-GPTに戻って試してみますが、やっぱり403エラー。
Chat-GPTに聞くと、「GCPプロジェクト番号入ってますか?」と言われます。
入れようとしたら、↓の通りでOAuthが必要だよと言われます。

そもそもOAuthが読めない

ということでGCPに戻りまして、OAuthの設定します。
これってカレンダー調整アプリとかで、最初に見るやつですね!

正規な状態じゃないようで、テストユーザーも登録しました

4.何とかできた

亀足だったので、もはやどれだけの時間を掛けたかもわかりませんがなんとかできました!


今後は、ファイルの保存場所の変更とか、一回作ったファイルの編集とかできるようにしていきたいです。
もちろん、スプレッドシートやスライドの編集にも挑戦していきたいですね。

ちなみに、たぶん本質的理解は全くないので、認証辺りも怪しい所が多く…
もし改善のアドバイスあれば是非コメントください。

この記事が参加している募集

GPTsつくってみた

この記事が気に入ったらサポートをしてみませんか?