【コストゼロ】GASと連携してGPTsでGoogleフォームを自動作成する方法
はじめに
こんにちは!前回は、Google Apps Script(GAS)と連携してGPTsでカレンダーのイベントを確認・編集する方法を紹介しました。
今回は、その自動化の範囲をさらに広げ、GASとGPTsを組み合わせてGoogle Formsを自動作成するプロセスを探求します。
想像してみてください。会議やイベントが終わった後、参加者のフィードバックを集めるための満足度調査を作成したいと思ったとき、どれだけ時間がかかるでしょうか?今回紹介する方法を使えば、「今日のイベントについての満足度調査を作って」とGPTに頼むだけで、あっという間にGoogle Formが準備できます。
この記事の対象者:
GPTsのCustom Actionsを自作したい方
GASとGPTsの基本的な連携方法を学びたい方
Zapierの連携よりも複雑な処理を求めている方
必要な準備:
Googleアカウント:GASスクリプトを作成・実行するために必要です。
ChatGPTの課金アカウント:GPTsを作成するために必要です。
手順① GASを準備する
最初のステップとして、GASを用いてGoogle Formsを動的に生成するコードを作成します。このスクリプトは、GPTからの指示に応じてフォームを自動的に作成するための基盤となります。
GASプロジェクトの作成:
Google Apps Scriptのホームページにアクセスし、「新しいプロジェクト」をクリックして開始します。
スクリプトのコーディング:
新しいプロジェクトが開いたら、下記のコードをエディタにコピー&ペーストします。このコードは、具体的なフォーム作成のリクエストを受け取り、指定された質問項目を含むGoogle Formを生成します。
function doPost(e) {
try {
var payload = JSON.parse(e.postData.contents);
switch (payload.operation) {
case 'createFormWithQuestions':
var response = createFormWithQuestions(payload);
return ContentService.createTextOutput(JSON.stringify(response))
.setMimeType(ContentService.MimeType.JSON);
default:
return ContentService.createTextOutput(JSON.stringify({ 'status': 'error', 'message': 'Invalid operation' }))
.setMimeType(ContentService.MimeType.JSON);
}
} catch (error) {
return ContentService.createTextOutput(JSON.stringify({ 'status': 'error', 'message': error.toString() }))
.setMimeType(ContentService.MimeType.JSON);
}
}
function createFormWithQuestions(details) {
try {
var form = FormApp.create(details.title);
details.questions.forEach(function(question) {
switch(question.type) {
case 'text':
form.addTextItem().setTitle(question.title);
break;
case 'paragraph':
form.addParagraphTextItem().setTitle(question.title);
break;
case 'multipleChoice':
form.addMultipleChoiceItem().setTitle(question.title).setChoiceValues(question.options);
break;
}
});
return {
'status': 'success',
'message': 'Form with questions created',
'formId': form.getId(),
'formUrl': form.getPublishedUrl()
};
} catch (error) {
return { 'status': 'error', 'message': error.toString() };
}
}
手順② 作成したGASをWebアプリとしてデプロイする
次に、作成したGASスクリプトをWebアプリケーションとしてデプロイし、外部からアクセスできるようにします。このステップは、GPTsからスクリプトを呼び出すために不可欠です。
デプロイの準備:
GASエディタの上部にある「デプロイ」ボタンをクリックし、「新しいデプロイ」を選択します。
デプロイ設定:
「⚙️設定」アイコンを選択し、「ウェブアプリ」を選びます。
以下の情報を設定欄に入れます。
新しい説明文:適切な文章
次のユーザとして実行:自分
アクセスできるユーザー:全員
デプロイの実行:
全ての設定が完了したら、「デプロイ」をクリックします。Googleによるアクセス承認が求められる場合がありますので、指示に従って承認してください。
WebアプリケーションのURLを取得
デプロイが完了すると、生成されたWebアプリケーションのURLが表示されます。このURLは、GPTsからのリクエストを受け付けるために使用しますので、メモしておいてください。
手順③ GPTsを作成する。
GASをデプロイした後は、GPTsを作成し、GAS Webアプリケーションとの連携を設定します。
GPTsの設定:
以下のページに移動し、新しいGPTsを作成します。
設定リンク:https://chat.openai.com/gpts/editor
基本情報の入力:
名前と説明:GPTsの目的を簡潔に説明する名前と詳細な説明を入力します。
InstructionsとCapabilities:このプロジェクトでは特に設定は不要ですが、特定の指示や能力を明確にしたい場合はここに記述します。
Actionsの定義:
「Actions」セクションに移動し、「Scheme」を選択して、上記で作成したGASのWebアプリケーションと通信するための設定を記入します。
{
"openapi": "3.0.0",
"info": {
"title": "Google Forms API",
"version": "1.0.0",
"description": "API for creating and managing Google Forms."
},
"servers": [
{
"url": "https://script.google.com/macros/s/YOUR_SCRIPT_ID/exec"
}
],
"paths": {
"/exec": {
"post": {
"summary": "Create a Google Form with specified questions",
"operationId": "createFormWithQuestions",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": ["createFormWithQuestions"]
},
"title": {
"type": "string"
},
"questions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"options": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional for multiple choice questions"
}
},
"required": ["type", "title"]
}
}
},
"required": ["operation", "title", "questions"]
}
}
}
},
"responses": {
"200": {
"description": "Form created successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string"
},
"message": {
"type": "string"
},
"formId": {
"type": "string"
},
"formUrl": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
スクリプトIDの置き換え:Scheme内のYOUR_SCRIPT_IDを、手順②で得たWebアプリケーションのURL内のスクリプトIDに置き換えます。
実際に作成したGPTsを使ってみる
すべての設定が完了したら、GPTsをテストしてみましょう。例えば、「イベントの満足度フォームを作成して」とGPTに命令すると、指定した詳細でGoogle Formが作成され、そのURLが返されます。
コードの解説
GASスクリプト解説
doPost関数
概要: WebhookからのPOSTリクエストを処理する。
処理内容:
HTTP POSTリクエストの内容を解析。
操作の種類(operation)に応じて適切な関数を実行。
'createFormWithQuestions'の場合はcreateFormWithQuestions関数を呼び出す。
エラー発生時はエラーメッセージを含むJSONレスポンスを返す。
createFormWithQuestions関数
概要: Googleフォームを作成し、指定された質問でフォームを構成する。
処理内容:
新しいGoogleフォームを作成し、与えられたタイトルを設定。
各質問に対して、質問のタイプ(text, paragraph, multipleChoice)に応じてフォーム項目を追加。
text: テキスト項目を追加。
paragraph: 段落テキスト項目を追加。
multipleChoice: 複数選択項目を追加し、選択肢を設定。
フォームのIDと公開URLを含む成功メッセージを返す。
処理中にエラーが発生した場合はエラーメッセージを返す。
終わりに
この記事を通じて、GASとGPTsを使ったGoogle Formsの自動作成プロセスを紹介しました。
この記事を参考にご自身でCustom ActionsのAPIを開発する際の一助になれば、幸いです。
最後までご精読いただき、ありがとうございました。
最後までお読みいただき、ありがとうございました。より多くの自動化のアイデアに興味がある方は、私のXをフォローして最新情報を得てください。
https://twitter.com/junichikawaAI
Image Credit: Open AI Inc. and Google LLC
この記事が気に入ったらサポートをしてみませんか?