Class FormResponse

FormResponse

תשובה לטופס כולו. אפשר להשתמש ב-FormResponse בשלוש דרכים: כדי לגשת לתשובות שנשלחו על ידי המשיבים (ראו getItemResponses()), כדי לשלוח תשובה לטופס באופן פרוגרמטי (ראו withItemResponse(response) ו-submit()) וכדי ליצור כתובת URL לטופס שממלאת מראש את השדות באמצעות התשובות שסופקו. אפשר ליצור FormResponse או לגשת אליו מ-Form.

// Open a form by ID and log the responses to each question.
const form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
const formResponses = form.getResponses();
for (let i = 0; i < formResponses.length; i++) {
  const formResponse = formResponses[i];
  const itemResponses = formResponse.getItemResponses();
  for (let j = 0; j < itemResponses.length; j++) {
    const itemResponse = itemResponses[j];
    Logger.log(
        'Response #%s to the question "%s" was "%s"',
        (i + 1).toString(),
        itemResponse.getItem().getTitle(),
        itemResponse.getResponse(),
    );
  }
}

Methods

שיטהסוג הערך המוחזרתיאור קצר
getEditResponseUrl()Stringיצירת כתובת URL שאפשר להשתמש בה כדי לערוך תשובה שכבר נשלחה.
getGradableItemResponses()ItemResponse[]הפונקציה מקבלת את כל התשובות לפריטים שמופיעות בתשובה לטופס, באותו הסדר שבו הפריטים מופיעים בטופס.
getGradableResponseForItem(item)ItemResponseהפונקציה מקבלת את התשובה לגבי הפריט שמופיעה בתשובה לטופס לגבי פריט נתון.
getId()Stringהפונקציה מקבלת את המזהה של התשובה לטופס.
getItemResponses()ItemResponse[]הפונקציה מקבלת את כל התשובות לפריטים שמופיעות בתשובה לטופס, באותו הסדר שבו הפריטים מופיעים בטופס.
getRespondentEmail()Stringהפונקציה מקבלת את כתובת האימייל של מי ששלח תשובה, אם ההגדרה Form.setCollectEmail(collect) מופעלת.
getResponseForItem(item)ItemResponseהפונקציה מקבלת את התשובה לגבי הפריט שמופיעה בתשובה לטופס עבור פריט נתון.
getTimestamp()Dateהפונקציה מקבלת את חותמת הזמן של שליחת התשובה לטופס.
submit()FormResponseשולחים את התשובה.
toPrefilledUrl()Stringיצירת כתובת URL לטופס שבו התשובות ימולאו מראש על סמך התשובות בתשובה הזו לטופס.
withItemGrade(gradedResponse)FormResponseהוספת הציונים של התשובה לפריט נתון לתשובה בטופס.
withItemResponse(response)FormResponseהוספת התשובה לפריט הנתון לתשובה בטופס.

מסמכים מפורטים

getEditResponseUrl()

יצירת כתובת URL שאפשר להשתמש בה כדי לערוך תשובה שכבר נשלחה. אם ההגדרה Form.setAllowResponseEdits(enabled) מושבתת, הקישור יוביל לדף שבו מוסבר שהעריכה של תשובות לטופס מושבתת. כל מי שנכנס לקישור יכול לערוך את התשובה, אבל אם ההגדרה Form.setRequireLogin(requireLogin) מופעלת, הוא יצטרך חשבון עם גישה לטופס. אם ההגדרה Form.setCollectEmail(collect) מופעלת, הטופס יכלול את כתובת האימייל של המשתמש ששינה את התשובה במקום את כתובת האימייל של המשיב המקורי.

אם מדובר בתשובה לטופס שנוצרה על ידי הסקריפט אבל עדיין לא נשלחה, השיטה הזו מחזירה את הערך null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the first form response.
const formResponse = form.getResponses()[0];

// Gets the edit URL for the first form response and logs it to the console.
const editUrl = formResponse.getEditResponseUrl();
console.log(editUrl);

חזרה

String – כתובת ה-URL לשינוי תשובה שנשלחה.

אישור

סקריפטים שמשתמשים בשיטה הזו דורשים הרשאה עם אחד או יותר מהיקפי הגישה הבאים:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getGradableItemResponses()

הפונקציה מקבלת את כל התשובות לפריטים שמופיעות בתשובה לטופס, באותו הסדר שבו הפריטים מופיעים בטופס. השיטה הזו פועלת באופן דומה ל-getItemResponses(), אבל כדי לאפשר מתן ציון לתשובה חסרה, היא עדיין מחזירה ItemResponse אם אפשר לתת ציון ל-Item התואם (כלומר, אם יש לו ערך נקודות), גם אם אין תשובה בפועל. עם זאת, אם לא ניתן לדרג את הערך של Item, השיטה הזו תחריג את הפריט הזה מהמערך שהיא מחזירה.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Gets the item responses contained in each form response.
for (const formResponse of formResponses) {
  const gradableItemsResponses = formResponse.getGradableItemResponses();

  // Logs the title and score for each item response to the console.
  for (const gradableItemsResponse of gradableItemsResponses) {
    console.log(`${gradableItemsResponse.getItem().getTitle()}
       score ${gradableItemsResponse.getScore()}`);
  }
}

חזרה

ItemResponse[] — מערך של תשובות לכל פריט שאלה בטופס שעבורו המשיב יכול לקבל ציון.

אישור

סקריפטים שמשתמשים בשיטה הזו דורשים הרשאה עם אחד או יותר מהיקפי הגישה הבאים:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getGradableResponseForItem(item)

הפונקציה מקבלת את התשובה לגבי הפריט שמופיעה בתשובה לטופס לגבי פריט נתון. השיטה הזו פועלת באופן דומה ל-getResponseForItem(item), אבל כדי לאפשר מתן ציון לתשובה חסרה, היא עדיין מחזירה ItemResponse אם אפשר לדרג את ה-Item התואם (כלומר, אם יש לו ערך נקודות), גם אם אין תשובה בפועל. עם זאת, אם לא ניתן לדרג את Item, השיטה מחזירה את הערך null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Gets the item responses contained in a form response.
for (const formResponse of formResponses) {
  const formItemResponses = formResponse.getGradableItemResponses();

  // Logs the title and score for responses to the first item of the form.
  const itemResponse = formResponse.getGradableResponseForItem(
      formItemResponses[0].getItem(),
  );
  console.log(
      `${itemResponse.getItem().getTitle()} score ${itemResponse.getScore()}`,
  );
}

פרמטרים

שםסוגתיאור
itemItem

חזרה

ItemResponse – התשובה של התלמיד/ה למטלה מסוימת, או null אם לא קיימת תשובה והמטלה לא נבדקה.


getId()

הפונקציה מקבלת את המזהה של התשובה לטופס. אם התשובה לטופס לא נשלחה, השיטה מחזירה את הערך null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the form responses and logs the ID for each form response to
// the console.
for (const formResponse of formResponses) {
  console.log(`Response ID: ${formResponse.getId()}`);
}

חזרה

String – המזהה של התשובה לטופס, או null אם התשובה לטופס לא נשלחה.

אישור

סקריפטים שמשתמשים בשיטה הזו דורשים הרשאה עם אחד או יותר מהיקפי הגישה הבאים:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getItemResponses()

הפונקציה מקבלת את כל התשובות לפריטים שמופיעות בתשובה לטופס, באותו הסדר שבו הפריטים מופיעים בטופס. אם התגובה לטופס לא מכילה תגובה ל-TextItem,‏ DateItem,‏ TimeItem או ParagraphTextItem נתון, הערך של ItemResponse שיוחזר לפריט הזה יהיה מחרוזת ריקה. אם התשובה בטופס לא כוללת תגובה לסוג פריט אחר, השיטה הזו תחריג את הפריט הזה מהמערך שהיא מחזירה.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the responses to the form.
const formResponses = form.getResponses();

// Iterates over the responses.
for (const formResponse of formResponses) {
  // Gets the item responses from each form response.
  const itemResponses = formResponse.getItemResponses();

  // Iterates over the item responses.
  for (const itemResponse of itemResponses) {
    // Logs the items' questions and responses to the console.
    console.log(
        `Response to the question '${itemResponse.getItem().getTitle()}' was
      '${itemResponse.getResponse()}'`);
  }
}

חזרה

ItemResponse[] – מערך של תשובות לכל פריט שאלה בטופס שהמשיב סיפק לו תשובה.

אישור

סקריפטים שמשתמשים בשיטה הזו דורשים הרשאה עם אחד או יותר מהיקפי הגישה הבאים:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getRespondentEmail()

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

אם מדובר בתשובה לטופס שנוצרה על ידי הסקריפט אבל עדיין לא נשלחה, השיטה הזו מחזירה את הערך null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the responses and logs each respondent's email to the console.
// To collect respondent emails, ensure that Form.setCollectEmail(collect) is
// set to true.
for (const formResponse of formResponses) {
  console.log(`Respondent Email: ${formResponse.getRespondentEmail()}`);
}

חזרה

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

אישור

סקריפטים שמשתמשים בשיטה הזו דורשים הרשאה עם אחד או יותר מהיקפי הגישה הבאים:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getResponseForItem(item)

הפונקציה מקבלת את התשובה לגבי הפריט שמופיעה בתשובה לטופס עבור פריט נתון.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the first item on the form.
const item = form.getItems()[0];

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the responses and logs each response to the first item to the
// console.
for (const formResponse of formResponses) {
  const itemResponse = formResponse.getResponseForItem(item);
  console.log(itemResponse.getResponse());
}

פרמטרים

שםסוגתיאור
itemItem

חזרה

ItemResponse – התגובה לפריט נתון, או null אם אין פריט כזה.


getTimestamp()

הפונקציה מקבלת את חותמת הזמן של שליחת התשובה לטופס.

אם מדובר בתשובה לטופס שנוצרה על ידי הסקריפט אבל עדיין לא נשלחה, השיטה הזו מחזירה את הערך null.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets an array of the form's responses.
const formResponses = form.getResponses();

// Loops through the responses and logs the timestamp of each response to the
// console.
for (const formResponse of formResponses) {
  console.log(`Timestamp: ${formResponse.getTimestamp()}`);
}

חזרה

Date – חותמת הזמן שבה התשובה הזו נשלחה, או null אם הסקריפט יצר את התשובה הזו אבל עדיין לא שלח אותה.

אישור

סקריפטים שמשתמשים בשיטה הזו דורשים הרשאה עם אחד או יותר מהיקפי הגישה הבאים:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

submit()

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

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Creates an empty response for the form.
const formResponse = form.createResponse();

// Submits an empty response.
formResponse.submit();

חזרה

FormResponse – תשובה חדשה שנוצרה ונשמרה במאגר התשובות של הטופס.

אישור

סקריפטים שמשתמשים בשיטה הזו דורשים הרשאה עם אחד או יותר מהיקפי הגישה הבאים:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

toPrefilledUrl()

יצירת כתובת URL לטופס שבו התשובות ימולאו מראש על סמך התשובות בתשובה הזו לטופס.

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Gets the first form response.
const formResponse = form.getResponses()[0];

// Generates and logs the URL of a pre-filled form response based on the answers
// of the first form response.
const prefilledUrl = formResponse.toPrefilledUrl();
console.log(prefilledUrl);

חזרה

String — כתובת ה-URL של טופס עם תשובות שמולאו מראש.

אישור

סקריפטים שמשתמשים בשיטה הזו דורשים הרשאה עם אחד או יותר מהיקפי הגישה הבאים:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

withItemGrade(gradedResponse)

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

// Programmatically award partial credit for a given response
const form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
const formResponses = form.getResponses();
const formItems = form.getItems();
for (const formResponse of formResponses) {
  for (const item of formItems) {
    const points = item.asMultipleChoiceItem().getPoints();
    const itemResponse = formResponse.getGradableResponseForItem(item);
    Logger.log('Award half credit for answers containing the word "Kennedy"');
    const answer = itemResponse.getResponse();

    if (answer?.includes('Kennedy')) {
      itemResponse.setScore(points / 2);
      formResponse.withItemGrade(itemResponse);
    }
  }
}
form.submitGrades(formResponses);

פרמטרים

שםסוגתיאור
gradedResponseItemResponse

חזרה

FormResponse — ה-FormResponse הזה, לשרשור

אישור

סקריפטים שמשתמשים בשיטה הזו דורשים הרשאה עם אחד או יותר מהיקפי הגישה הבאים:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

withItemResponse(response)

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

// Opens the Forms file by its ID.
// If you created your script from within a Google Forms file, you can
// use FormApp.getActiveForm() instead.
// TODO(developer): Replace the ID with your own.
const form = FormApp.openById('abc123456');

// Creates a response for the form.
const formResponse = form.createResponse();

// Appends a checkbox item to the form.
const item = form.addCheckboxItem();

// Sets the title of the item to 'Which items are ice cream flavors?'
item.setTitle('Which items are ice cream flavors?');

// Sets choices for the item.
item.setChoices([
  item.createChoice('Vanilla'),
  item.createChoice('Strawberry'),
  item.createChoice('Brick'),
]);

// Creates a response for the item.
const response = item.createResponse(['Vanilla', 'Strawberry']);

// Adds the item response to the form response.
formResponse.withItemResponse(response);

// Submits the form response.
formResponse.submit();

פרמטרים

שםסוגתיאור
responseItemResponse

חזרה

FormResponse — השדה FormResponse, לצורך קישור.

אישור

סקריפטים שמשתמשים בשיטה הזו דורשים הרשאה עם אחד או יותר מהיקפי הגישה הבאים:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms