ภาพรวม

Google Forms API เป็นอินเทอร์เฟซ RESTful ที่ให้คุณสร้างและแก้ไขแบบฟอร์มและแบบทดสอบ เรียกข้อมูลคําตอบในแบบฟอร์มและคะแนนของแบบทดสอบ ตั้งค่าคีย์คําตอบของแบบทดสอบด้วยความคิดเห็นอัตโนมัติ และรับข้อความ Push ได้ การใช้งานที่พบบ่อยที่สุดสําหรับ API นี้รวมถึงงานต่อไปนี้

  • สร้างแบบฟอร์มหรือแบบทดสอบ
  • อัปเดตแบบฟอร์มหรือแบบทดสอบ
  • เรียกข้อมูลคําตอบจากแบบฟอร์มหรือแบบทดสอบ
  • อ่านเนื้อหาและข้อมูลเมตาของแบบฟอร์ม
  • ตั้งค่าและรับข้อความ Push

รายการคําศัพท์ทั่วไปที่ใช้ใน Forms API มีดังนี้

แบบฟอร์ม

เอกสาร Google ฟอร์มที่สร้างและจัดเก็บไว้ในไดรฟ์ แต่ละแบบฟอร์มนําเสนอด้วยทรัพยากร Form และค่า formId ที่ไม่ซ้ํากันประกอบด้วยตัวอักษร ตัวเลข ขีดกลาง หรือขีดล่าง คุณจะพบรหัสแบบฟอร์มใน URL ของ Google ฟอร์ม ดังนี้

https://docs.google.com/forms/d/FORM_ID/edit

แบบทดสอบ

เอกสาร Google ฟอร์มประเภทหนึ่งที่อนุญาตการให้คะแนนคําตอบของแบบฟอร์มกับคีย์คําตอบ คุณสร้างแบบทดสอบได้โดยใช้เมธอด batchUpdate() เพื่ออัปเดตการตั้งค่า isQuiz ในแบบฟอร์มที่มีอยู่เป็น true เท่านั้น

การให้คะแนน
ใช้ค่าคะแนน คีย์คําตอบ และความคิดเห็นสําหรับคําถามเมื่อ isQuiz เป็น true นําเสนอโดยทรัพยากร Grading
ความคิดเห็น
คําตอบของผู้ใช้ปลายทางเมื่อตอบคําถามในแบบทดสอบ เป็นข้อมูลจากทรัพยากร Feedback
รายการ

องค์ประกอบเดียวในแบบฟอร์มซึ่งแสดงโดยทรัพยากรรายการ Item เป็นองค์ประกอบที่เกิดซ้ําซึ่งมีส่วน กลุ่มคําถาม คําถาม ข้อความ รูปภาพ หรือวิดีโอได้

Question

คําถามเดียวในแบบฟอร์มซึ่งแสดงโดยทรัพยากร Question

กลุ่มคําถาม

กลุ่มคําถามที่มีคําตอบชุดเดียวกันที่เป็นไปได้ (เช่น ตารางคะแนนจาก 1 ถึง 5) นําเสนอโดยทรัพยากร QuestionGroupItem

Section

ส่วนเป็นวิธีแบ่งแบบฟอร์มออกเป็นหลายหน้าและเพิ่มตรรกะตามเงื่อนไข (เช่น แสดงเฉพาะคําถามบางข้อตามคําตอบของผู้ใช้) ส่วนสอดคล้องกับทรัพยากร PageBreakItem

คําตอบ

คําตอบของผู้ใช้ปลายทางที่นําเสนอโดยทรัพยากร Answer รวมทั้งข้อมูลคะแนน (หากมี) ข้อมูลเมตา และเนื้อหาของคําตอบ

คําตอบ

แบบฟอร์มของผู้ใช้ปลายทางที่ส่งโดยทรัพยากร FormResponse

ดู

ทริกเกอร์ที่ติดตามการเปลี่ยนแปลงสคีมาสคีมา (เช่น การแก้ไขคําถาม) หรือการส่งแบบฟอร์มการตอบกลับ และส่งข้อความ Push เมื่อมีการเปลี่ยนแปลง นําเสนอโดยทรัพยากร Watch

โครงสร้างแบบฟอร์ม

เมื่อจัดการแบบฟอร์มและแบบทดสอบ การเข้าใจวิธีระบุช่องต่างๆ อาจเป็นเรื่องซับซ้อน เนื่องจากออบเจ็กต์แบบฟอร์มจํานวนมากจะซ้อนกันภายในได้หลายวิธี หากต้องการดูว่าภาพของแบบฟอร์มแสดงข้อมูลในช่องอย่างไร เราขอแนะนําให้ใช้ UI เพื่อสร้างตัวอย่างแบบฟอร์มที่แอปพลิเคชันอาจสร้างขึ้น จากนั้นเรียก 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": "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"
              }
            ]
          }
        }
      }
    }
  ]
}

ขั้นตอนถัดไป