概览

Google Forms API 是一个 RESTful 接口,可让您创建和修改表单和测验、检索表单回复和测验成绩、设置包含自动反馈的测验答案表,以及接收推送通知。此 API 的最常见用途包括以下任务:

  • 创建表单或测验
  • 更新表单或测验
  • 检索表单或测验中的回复
  • 读取表单内容和元数据
  • 设置和接收推送通知

下面列出了 Google 表单 API 中使用的常用术语:

形式

在云端硬盘中创建并存储的 Google 表单文档。每个表单都由 Form 资源表示,并且具有唯一的 formId 值,其中包含字母、数字、连字符或下划线。您可以在 Google 表单网址中找到表单 ID:

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 资源表示。

表单结构

在管理表单和测验时,由于许多表单对象可以通过多种方式嵌套在彼此内部,因此了解如何指定不同的字段可能会很复杂。如需了解表单的视觉表示如何映射到字段,我们建议您使用该界面创建几个您的应用可能会生成的表单示例。然后,使用 forms.get() 方法检索相应的 JSON,以便进行比较。例如,此示例知识问答对应于以下 JSON:

{
  "formId": "FORM_ID",
  "info": {
    "title": "Famous Black Women",
    "description": "Please complete this quiz based off of this week's readings for class.",
    "documentTitle": "API Example Quiz"
  },
  "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"
              }
            ]
          }
        }
      }
    }
  ]
}

后续步骤