總覽

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

  • 建立表單或測驗
  • 發布及管理回覆者
  • 更新表單或測驗
  • 擷取表單或測驗的回應
  • 讀取表單內容和中繼資料
  • 設定及接收推播通知
以下列出 Forms API 中常用的字詞:
Form

在雲端硬碟中建立及儲存的 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"
              }
            ]
          }
        }
      }
    }
  ],
  "publishSettings" : {
    "isPublished": true,
    "isAcceptingResponses": true
  }
}

後續步驟