סקירה כללית

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"
              }
            ]
          }
        }
      }
    }
  ]
}

השלבים הבאים