ภาพรวม

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 Item เป็น องค์ประกอบที่ทำซ้ำได้ซึ่งอาจมีส่วน กลุ่มคำถาม คำถาม ข้อความ รูปภาพ หรือวิดีโอ

คำถาม

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

กลุ่มคำถาม

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

Section

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

คำตอบ

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

การตอบกลับ

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

นาฬิกาข้อมือ

ทริกเกอร์ที่ติดตามการเปลี่ยนแปลงในสคีมาของแบบฟอร์ม (เช่น การแก้ไขคำถาม) หรือการส่งคำตอบของแบบฟอร์ม และส่งการแจ้งเตือนแบบพุชเมื่อมีการเปลี่ยนแปลงเกิดขึ้น แสดงโดยทรัพยากร 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"
              }
            ]
          }
        }
      }
    }
  ],
  "publishSettings" : {
    "isPublished": true,
    "isAcceptingResponses": true
  }
}

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