概要

Google Forms API は RESTful インターフェースで、フォームとテストの作成と変更、フォームの回答とテストの成績の取得、自動フィードバック付きのテスト解答集の設定、プッシュ通知の受信が可能です。この API の一般的な用途は次のとおりです。

  • フォームまたはテストを作成する
  • フォームの回答者を公開、管理する
  • フォームまたはテストを更新する
  • フォームまたはテストから回答を取得する
  • フォームのコンテンツとメタデータを読み取る
  • プッシュ通知を設定して受信する
Forms API で使用される一般的な用語を以下に示します。
フォーム

Google ドライブで作成、保存される Google フォーム ドキュメント。 各フォームは Form リソースで表され、 一意の formId 値を持ち、文字、数字、ハイフン、または アンダースコアを含みます。フォーム ID は、フォームの URL で確認できます。

https://docs.google.com/forms/d/FORM_ID/edit

テスト

解答集に基づいてフォームの回答を採点できる、特定の種類の Google フォーム ドキュメント。テストを作成するには、 batchUpdate() メソッドを使用して、既存のフォームの isQuiz 設定を true に更新する必要があります。

採点
isQuiztrue の場合に適用される、質問の点数、解答集、フィードバック。 Grading リソースで表されます。
フィードバック
テストの質問に回答する際にエンドユーザーに提供されるレスポンス。 Feedback リソースで表されます。
項目

フォーム内の単一の要素。 Item リソースで表されます。Item は繰り返し要素で、セクション、質問グループ、質問、テキスト、画像、動画を含めることができます。

質問

フォーム内の単一の質問。 Question リソースで表されます。

質問グループ

同じ回答のセットを共有する質問のグループ(1 ~ 5 の評価のグリッドなど)。 QuestionGroupItem リソースで表されます。

セクション

セクションは、フォームを複数のページに分割し、条件付きロジック(ユーザーの回答に基づいて特定の質問のみを表示するなど)を追加する方法です。セクションは PageBreakItem リソースに対応します。

回答

エンドユーザーが質問に対して投稿した回答。 Answer リソースで表されます。成績情報(存在する場合)、メタデータ、回答の内容が含まれます。

レスポンス

エンドユーザーによるフォームの送信。FormResponseリソースで表されます。

スマートウォッチ

フォーム スキーマの変更(質問の編集など)またはフォームの回答の送信の変更を追跡し、変更が発生したときにプッシュ通知を送信するトリガー。 Watch リソースで表されます。

フォームの構造

フォームとテストを管理する場合、多くのフォーム オブジェクトをさまざまな方法でネストできるため、さまざまなフィールドを指定する方法を理解するのは複雑になる可能性があります。フォームのビジュアル表現がフィールドにどのようにマッピングされるかを確認するには、UI を使用して、アプリケーションで生成される可能性のあるフォームの例をいくつか作成することをおすすめします。次に、対応する JSON を forms.get() メソッド を使用して取得し、比較します。たとえば、 このテストの例 は次の JSON に対応しています。

{
  "formId": "FORM_ID",
  "info": {
    "title": "Famous Black Women",
    "description": "Please complete this quiz based off of this week's readings for class.",
    "documentTitle": "Famous Black Women"
  },
  "settings": {
    "quizSettings": {
      "isQuiz": true
    }
  },
  "revisionId": "00000021",
  "responderUri": "https://docs.google.com/forms/d/e/1FAIpQLSd0iBLPh4suZoGW938EU1WIxzObQv_jXto0nT2U8HH2KsI5dg/viewform",
  "items": [
    {
      "itemId": "5d9f9786",
      "imageItem": {
        "image": {
          "contentUri": "DIRECT_URL",
          "properties": {
            "alignment": "LEFT"
          }
        }
      }
    },
    {
      "itemId": "72b30353",
      "title": "Which African American woman authored \"I Know Why the Caged Bird Sings\"?",
      "questionItem": {
        "question": {
          "questionId": "25405d4e",
          "required": true,
          "grading": {
            "pointValue": 2,
            "correctAnswers": {
              "answers": [
                {
                  "value": "Maya Angelou"
                }
              ]
            }
          },
          "choiceQuestion": {
            "type": "RADIO",
            "options": [
              {
                "value": "Maya Angelou"
              },
              {
                "value": "bell hooks"
              },
              {
                "value": "Alice Walker"
              },
              {
                "value": "Roxane Gay"
              }
            ]
          }
        }
      }
    },
    {
      "itemId": "0a4859c8",
      "title": "Who was the first Dominican-American woman elected to state office?",
      "questionItem": {
        "question": {
          "questionId": "37fff47a",
          "grading": {
            "pointValue": 2,
            "correctAnswers": {
              "answers": [
                {
                  "value": "Grace Diaz"
                }
              ]
            }
          },
          "choiceQuestion": {
            "type": "RADIO",
            "options": [
              {
                "value": "Rosa Clemente"
              },
              {
                "value": "Grace Diaz"
              },
              {
                "value": "Juana Matias"
              },
              {
                "value": "Sabrina Matos"
              }
            ]
          }
        }
      }
    }
  ],
  "publishSettings" : {
    "isPublished": true,
    "isAcceptingResponses": true
  }
}

次のステップ