ภาพรวม

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

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

ด้านล่างนี้เป็นรายการคำศัพท์ทั่วไปที่ใช้ใน API ของฟอร์ม

แบบฟอร์ม

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

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

แบบทดสอบ

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

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

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

Question

คำถามเดียวในแบบฟอร์มซึ่งแสดงโดยแหล่งข้อมูล Question

กลุ่มคำถาม

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

Section

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

คำตอบ

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

คำตอบ

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

ดู

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

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

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

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