概览

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

  • 创建表单或测验
  • 发布和管理回答者
  • 更新表单或测验
  • 检索表单或测验中的回答
  • 读取表单内容和元数据
  • 设置和接收推送通知
以下是 Forms 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"
              }
            ]
          }
        }
      }
    }
  ],
  "publishSettings" : {
    "isPublished": true,
    "isAcceptingResponses": true
  }
}

后续步骤