總覽

Google Forms API 是符合 REST 樣式的介面,可用來建立及修改表單和測驗、擷取表單回應和測驗成績、設定測驗答案金鑰 (採自動提供意見回饋功能),以及接收推播通知。這個 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"
              }
            ]
          }
        }
      }
    }
  ]
}

後續步驟