概览

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

  • 创建表单或测验
  • 发布表单和管理回复者
  • 更新表单或测验
  • 从表单或测验中检索回复
  • 读取表单内容和元数据
  • 设置和接收推送通知
以下是 Forms API 中使用的常见术语列表:
表单

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

一种触发器,用于跟踪表单架构更改(例如对问题的修改)或表单回复提交,并在发生更改时发送推送通知。由 Watch 资源表示。

表单结构

在管理表单和测验时,由于许多表单对象可以以多种方式相互嵌套,因此了解如何指定不同的字段可能会很复杂。如需了解表单的直观表示形式如何映射到字段,我们建议您使用界面创建一些应用可能会生成的表单示例。然后,检索相应的 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
  }
}

后续步骤

  • 如需了解如何使用 Google Workspace API 进行开发(包括处理 身份验证和授权),请参阅 Workspace 开发者入门
  • 如需了解如何配置和运行基本的 Forms API 应用,请参阅 快速入门概览