Class FormResponse

FormResponse

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

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

שיטות

שיטהסוג הערך המוחזרתיאור קצר
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
var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
var formResponses = form.getResponses();
var formItems = form.getItems();
for (var i = 0; i < formResponses.length; i++) {
  var formResponse = formResponses[i];
  for (var j = 0; j < formItems.length; j++) {
    var item = formItems[j];
    var points = item.asMultipleChoiceItem().getPoints();
    var itemResponse = formResponse.getGradableResponseForItem(item);
    Logger.log('Award half credit for answers containing the word "Kennedy"');
    var answer = itemResponse.getResponse();
    if (answer != null && 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)

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

// 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

חזרה

FormResponseFormResponse, לשרשור.

אישור

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

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