סקירה כללית

‫Google Forms API הוא ממשק RESTful שמאפשר ליצור ולשנות טפסים ובחנים, לאחזר תשובות לטפסים וציונים בבחנים, להגדיר מפתחות תשובות לבחנים עם משוב אוטומטי ולקבל התראות Push. השימושים הנפוצים ביותר ב-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"
              }
            ]
          }
        }
      }
    }
  ],
  "publishSettings" : {
    "isPublished": true,
    "isAcceptingResponses": true
  }
}

השלבים הבאים