總覽

Google 表單 API 是 RESTful 介面,可讓您建立及修改表單和測驗、擷取表單回覆和測驗成績、設定測驗答案鍵並自動提供意見回饋,以及接收推播通知。這個 API 最常見的用途包括下列工作:

  • 建立表單或測驗
  • 更新表單或測驗
  • 擷取表單或測驗的回覆
  • 讀取表單內容和中繼資料
  • 設定及接收推播通知

以下列出表單 API 中常用的術語:

Form

在 Google 雲端硬碟中建立及儲存的 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 資源代表。

Section

您可以使用區段將表單分成多個頁面,並加入條件式邏輯 (例如根據使用者的回答方式,只顯示特定問題)。版面對應至 PageBreakItem 資源。

答案

使用者針對問題的答案,以 Answer 資源表示。包含成績資訊 (如有)、中繼資料和答案內容。

回應

使用者提交表單,由 FormResponse 資源代表。

觀看

可追蹤表單結構定義異動 (例如問題編輯) 或表單回應提交變更的觸發條件,並在發生變化時傳送推播通知。由 Watch 資源代表。

表單結構

管理表單和測驗時,由於許多表單物件可透過多種方式相互巢狀,因此瞭解如何指定不同欄位的複雜度可能會較高。如要查看表單的視覺化表示法如何對應至欄位,建議您使用 UI 建立應用程式可能產生的幾個表單範例。接著,使用 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"
              }
            ]
          }
        }
      }
    }
  ]
}

後續步驟