總覽

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

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

以下列出 Forms 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"
              }
            ]
          }
        }
      }
    }
  ]
}

後續步驟