סקירה כללית

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"
              }
            ]
          }
        }
      }
    }
  ],
  "publishSettings" : {
    "isPublished": true,
    "isAcceptingResponses": true
  }
}

השלבים הבאים