REST 呼び出しを介して Google Forms API を直接呼び出す Apps Script プロジェクトを設定するのは簡単です。Google Cloud プロジェクトがすでに構成されていることを前提として、次の操作を行います。
- 新しい Apps Script プロジェクトを作成します。
- 関連付けられた Google Cloud プロジェクト番号を、Google Forms API 用に有効にしたプロジェクトと一致するように変更します。
- マニフェスト ファイル(
appsscript.json
)を編集して、必要な OAuth スコープを追加します。 - OAuth トークンを取得し、そのトークンを使用して REST 呼び出しを行う Apps Script コードを追加します。
手順は次のとおりです。
新しい Apps Script プロジェクトを作成して構成する
- GCP プロジェクトの構成に使用した Google ID を使用して、Apps Script ダッシュボードに移動し、[新しいプロジェクト] をクリックします。
- プロジェクトが開いたら、 [プロジェクトの設定] をクリックします。
- [「appsscript.json」マニフェスト ファイルをエディタで表示する] チェックボックスをオンにします。
- [Google Cloud Platform(GCP)プロジェクト] セクションで [プロジェクトを変更] をクリックし、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 への他の呼び出しを試します。