REST 呼び出しを介して Google Form API を直接呼び出すように Apps Script プロジェクトをセットアップするのは簡単です。Google Cloud プロジェクトがすでに構成されている場合は、次の操作を行います。
- 新しい Apps Script プロジェクトを作成します。
- Google フォーム API を有効にしたプロジェクトと一致するように、関連付けられている Google Cloud プロジェクト番号を変更します。
- マニフェスト ファイル(
appsscript.json
)を編集して、必要な OAuth スコープを追加します。 - OAuth トークンをフェッチし、そのトークンを使用して REST 呼び出しを行う Apps Script コードを追加します。
これらのステップについて簡単に説明します。
新しい Apps Script プロジェクトを作成して設定する
- GCP プロジェクトに使用したのと同じ Google ID を使用して Apps Script ダッシュボードに移動し、[新しいプロジェクト] をクリックします。
- プロジェクトが開いたら、[ プロジェクトの設定] をクリックします。
- [「appsscript.json」マニフェスト ファイルをエディタで表示する] チェックボックスをオンにします。
- [Google Cloud Platform(GCP)Project] セクションで、[プロジェクトを変更] をクリックし、Forms API に構成した GCP プロジェクト番号を入力します。
これで、Apps Script プロジェクトが Google Forms API にアクセスできるように設定されました。次に必要な手順は、適切な OAuth スコープの追加です。
OAuth スコープを追加する
Apps Script で適切なスコープの OAuth トークンを生成するには、プロジェクトのマニフェスト ファイルで必要なスコープを設定する必要があります。
- エディタで
appsscript.json
を開きます。 マニフェストの本文にスコープを追加します。
{ ... "oauthScopes": [ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.readonly", "https://www.googleapis.com/auth/forms.body", "https://www.googleapis.com/auth/forms.body.readonly", "https://www.googleapis.com/auth/forms.responses.readonly" ], ... }
[
プロジェクトを保存] をクリックし、必要に応じて構文エラーを修正します。これで、プロジェクトから REST 呼び出しを介して Google Forms API を呼び出せるようになりました。
API を呼び出す Apps Script コードを追加する
フォームを呼び出すコードを記述する前に、回答を持つ自分が所有しているフォームを特定し、そのフォーム ID をメモする必要があります。フォーム ID は、フォームの編集時に URL で確認できます。
https://docs.google.com/forms/d/<FORM_ID>/edit
API を呼び出すには、Apps Script の UrlFetchApp
呼び出しを使用します。
Code.gs を開き、次のコードを追加します。
YOUR_FORM_ID
は、先ほどメモした値に置き換えます。例:
var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';
[
プロジェクトを保存] をクリックし、必要に応じて構文エラーを修正します。
コードをテストする
- [ 実行] をクリックします。
- 以前と同じ Google ID を使用して、必要に応じてプロジェクトを承認します。
開始すると、実行ログに次のようなレスポンスが表示されます。
Execution started Calling the Forms API! OAuth token is: ya29.a0ARrdaM8IMjtlv… formsAPIUrl is: https://forms.googleapis.com/v1beta/forms/…/responses Response from Forms.responses was: { "responses": [ { "responseId":"...", "createTime": "2021-03-25T01:23:58.146Z", "lastSubmittedTime": "2021-03-25T01:23:58.146607Z", "answers": { "1e9b0ead": { "questionId": "1e9b0ead", "textAnswers": { "answers": [ { "value": "Red" } ] } }, "773ed8f3": { "questionId": "773ed8f3", "textAnswers": { "answers": [ { "value": "Tesla" } ] } } } } ] } Execution completed
次のステップ
Apps Script で API を正常に呼び出したら、リファレンス ドキュメントを参照して、他の API の呼び出しを試します。