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() عمل می‌کند، اما برای اینکه امکان درجه‌بندی یک پاسخ از دست رفته را فراهم کند، اگر Item مربوطه را بتوان درجه‌بندی کرد (یعنی دارای یک مقدار نقطه) باشد، همچنان یک ItemResponse برمی‌گرداند (یعنی دارای یک مقدار امتیاز باشد)، حتی اگر پاسخ واقعی وجود نداشته باشد. با این حال، اگر 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) عمل می‌کند، اما برای اینکه امکان درجه‌بندی یک پاسخ از دست رفته را فراهم کند، اگر Item مربوطه را بتوان درجه‌بندی کرد (یعنی دارای یک مقدار امتیاز) باشد، همچنان یک ItemResponse برمی‌گرداند، حتی اگر پاسخ واقعی وجود نداشته باشد. با این حال، اگر 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()}`);
}

مولفه های

نام تایپ کنید شرح
item Item

برگشت

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());
}

مولفه های

نام تایپ کنید شرح
item Item

برگشت

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);

مولفه های

نام تایپ کنید شرح
gradedResponse ItemResponse

برگشت

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();

مولفه های

نام تایپ کنید شرح
response ItemResponse

برگشت

FormResponse - این FormResponse ، برای زنجیر کردن.

مجوز

اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:

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