סקירה כללית

Google Forms API הוא ממשק RESTful שמאפשר ליצור ולשנות טפסים ובחנים, לאחזר תשובות לטפסים וציונים של בחנים, להגדיר מפתחות תשובות לבחנים עם משוב אוטומטי ולקבל התראות. השימושים הנפוצים ביותר ב-API הזה כוללים את המשימות הבאות:

  • יצירה של טופס או בוחן
  • עדכון טופס או בוחן
  • אחזור תשובות מטופס או מבוחן
  • קריאת התוכן והמטא-נתונים של טופס
  • הגדרה וקבלה של התראות

רשימת המונחים הנפוצים ב-Forms API מופיעה:

טופס

מסמך ב-Google Forms שנוצר ומאוחסן ב-Drive. כל טופס מיוצג על ידי משאב Form ויש לו ערך formId ייחודי, שכולל אותיות, מספרים, מקפים וקווים תחתונים. מזהה הטופס מופיע בכתובת ה-URL של Google Forms:

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

בוחן

סוג ספציפי של מסמך ב-Google Forms שמאפשר לדרג את התשובות לטופס לפי מפתח תשובות. אפשר ליצור בוחן רק באמצעות השיטה batchUpdate() כדי לעדכן את ההגדרה isQuiz בטופס קיים להגדרה true.

מתן ציונים
ערך של ניקוד, מפתח תשובות ומשוב לשאלה, שמיושמים כאשר isQuiz הוא true. מיוצג על ידי המשאב Grading.
משוב
תשובה שניתנה למשתמש הקצה במענה לשאלה בבוחן, מיוצגת על ידי המשאב Feedback.
פריט

רכיב יחיד בטופס, שמיוצג על ידי המשאב Item. Item הוא רכיב חוזר שיכול להכיל קטע, קבוצת שאלות, שאלה, טקסט, תמונה או סרטון.

שאלה

שאלה יחידה בטופס, שמיוצגת על ידי המשאב Question.

קבוצת שאלות

קבוצה של שאלות שכולן חולקות את אותה קבוצה של תשובות אפשריות (לדוגמה, רשת של דירוגים מ-1 עד 5). מיוצג על ידי המשאב QuestionGroupItem.

Section

קטע מאפשר לפצל טופס לכמה דפים ולהוסיף לוגיקה מותנית (למשל, להציג רק שאלות מסוימות בהתאם לאופן שבו המשתמש עונה). מקטעים תואמים למשאב PageBreakItem.

מענה

התשובה של משתמש הקצה לשאלה, מיוצגת על ידי המשאב Answer. המידע כולל גם את פרטי הציון (אם יש), מטא-נתונים ותוכן של התשובה.

תשובה

משתמש הקצה שלח טופס, מיוצג על ידי המשאב FormResponse.

לצפות

טריגר שעוקב אחרי שינויים בסכימת טפסים (כמו עריכות של שאלות) או שליחת תשובות לטופס, ושולח התראה בכל פעם שמתבצע שינוי. מיוצג על ידי המשאב Watch.

מבנה הטופס

כשמנהלים טפסים ובחנים, יכול להיות קשה להבין איך לציין שדות שונים, כי רבים מהאובייקטים של הטופס יכולים להיות מקוננים זה בתוך זה במספר דרכים. כדי לראות איך הייצוג החזותי של טופס ממופה לשדות, מומלץ להשתמש בממשק המשתמש כדי ליצור כמה דוגמאות לטפסים שהאפליקציה שלכם עשויה ליצור. לאחר מכן מאחזרים את קובץ ה-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"
              }
            ]
          }
        }
      }
    }
  ]
}

השלבים הבאים