こんにちは。
penguinmanです。
前回はOpenAIのAssistants APIを使って蒙古タンメン中本について答えてくれるスプレッドシートの関数を作りました。
今回はGPTsの方でOAuthを通してGoogleのAPIを叩いてみたのでそれについて共有します。
目次
何を作ったか?
上記のような形で「APIを叩いてください」と指示するとGoogle Apps Script(以降GASと略します)のプロジェクトを新規で作成してくれます。APIとしてはApps Script APIを叩いています。
どうやって作ったか?
OpenAIのGPTsのActionsを使ってAPIを叩きました。単にGPTsからAPIを叩いただけですが、OAuthを通すのが少し煩雑なのでその部分を重点的にお伝えしようと思います。
作成手順
まず、作業の概略をお示しすると以下の4ステップになります。特に最後のOAuthのところで私は詰まったので細かく説明したいと思います。
Google APIの準備
今回はApps Script APIを使うのでGoogle Cloud ConsoleのこちらからApps Script APIを「有効にする」を押しておいてください。
またGoogle Apps Script側でもAPIの有効化が必要なようなのでこちらからGoogle Apps Script APIをオンにしておいてください。
OAuth準備
続いてOAuthクライアントIDを作成します。こちらから作成画面に入ってください。画面に入ったら「認証情報を作成」を押して「OAuthクライアントID」を押してください。
設定画面に入ったらアプリケーションの種類は「ウェブアプリケーション」を選択し、名前は適当につけてください。設定が終わったら「作成」を押してください。
すると最初の画面に戻ってくるはずなので、もう一度作成したIDをクリックします。
下の画像のようにクライアントIDに関する情報がみれると思います。水色で隠してあるクライアントIDとクライアントシークレットは後ほど使用します。また赤く囲った部分は後ほど入力します。そのためこの画面は作業が終わるまで開いておいてください。
GPTsの設定
先ほどのOAuthクライアントIDの画面は開いたまま、別のウィンドウでGPTs作成画面を開きます。そして「Configure」を押して「Actions」ボタンを押して下記の画面を開いてください。
すると「Schema」の部分が空になっていると思いますので以下のコードをコピペしてください。
{
"openapi": "3.1.0",
"info": {
"title": "Create GAS Project",
"description": "Create GAS Project",
"version": "v1.0.0"
},
"servers": [
{
"url": "https://script.googleapis.com"
}
],
"paths": {
"/v1/projects": {
"post": {
"description": "Create GAS project",
"operationId": "CreateProject",
"parameters": [
{
"name": "title",
"in": "query",
"description": "GAS project name",
"required": true,
"schema": {
"type": "string"
}
}
],
"deprecated": false
}
}
},
"components": {
"schemas": {}
}
}
さて、いよいよ本題です。
先ほどの「Schema」の下に「Authentication」があるので「Edit」をクリックしてください(上の画像にも映っています)。
すると下図のような設定画面になりますので、クライアントIDとクライアントシークレットを入力します。クライアントIDの画面はこの後も使うのでまだ閉じないでください。
その他の項目は以下のように入力してください。
https://accounts.google.com/o/oauth2/auth
https://www.googleapis.com/oauth2/v4/token
https://www.googleapis.com/auth/script.projects
Token Exchange Methodはデフォルトのままで大丈夫です。
上記の設定を行ったら「save」ボタンを押します。
これでGPTsでの設定は終了で、ここからチャットを進めながら認証を行います。
OAuth
さてここからチャットを通してOAuthを通していきたいと思います。
まずは「Actionsに記載したAPIを叩いてください」とプロンプトに入力し、GPTsにAPIを叩かせてください。すると下記の画面の赤い四角ようにサインインを求められるはずです。サインインボタンを押してください。
すると下記のようにエラーが起こるはずです。
ここでもう一つ設定が必要になります。上記のエラー画面からブラウザバックしてGPTsの画面に戻ると下の画像のようにCallback URLというのが見えるかと思います。こちらをコピーしてください。
コピーしたCallback URLをクライアントIDで見えていた「URLを追加」の部分に貼り付けます。
クライアントIDの画面でURLを貼り付けて「保存」を押したらしばらくお待ちください。私の場合、5分くらい待ちました。こちらのURLの設定が反映されるまで少しラグがあるようです。
さて、再びGPTsの画面に戻り、もう一度APIを叩くプロンプトを入力してください。また、サインインを求められるはずです。しかし、今度はGoogle Accountの認証画面に入れるはずなので、全て許可をしてください。
Googleの認証が終わると謎のアラートが出てChatGPTの画面に戻されると思います。うまくいっているので安心してください。
再度、GPTsの画面に戻ってAPIを叩きます。APIを計3回叩いていますがこれで最後です。
今度はサインインではなく「Allow」のボタンが出ると思いますので押します。
すると下記のように、GASのプロジェクトが新規作成されると思います🙇
Done
OAuthにはかなり苦労しましたがなんとかGoogleのAPIが叩けたのでここから効率化が捗りそうです!
この記事が少しでも皆様のお役に立てることを願っております。
それではまた!!