Class FormResponse

فرم پاسخ

پاسخی به فرم به طور کلی. یک Form Response می‌تواند به سه روش استفاده شود: برای دسترسی به پاسخ‌های ارسال شده توسط یک پاسخ‌دهنده ( get Item Responses() مراجعه کنید)، برای ارسال برنامه‌ای پاسخ به فرم ( with Item Response(response) و submit() مراجعه کنید)، و برای تولید یک URL برای فرم که فیلدها را با استفاده از پاسخ‌های ارائه شده از قبل پر می‌کند. Form Response را می‌توان ایجاد کرد یا از طریق 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(),
    );
  }
}

روش‌ها

روش نوع بازگشتی شرح مختصر
get Edit Response Url() String یک URL تولید می‌کند که می‌تواند برای ویرایش پاسخی که قبلاً ارسال شده است، استفاده شود.
get Gradable Item Responses() Item Response[] تمام پاسخ‌های آیتم‌های موجود در پاسخ فرم را به همان ترتیبی که آیتم‌ها در فرم ظاهر می‌شوند، دریافت می‌کند.
get Gradable Response For Item(item) Item Response پاسخ آیتم موجود در پاسخ فرم برای یک آیتم داده شده را دریافت می‌کند.
get Id() String|null شناسه (ID) پاسخ فرم را دریافت می‌کند.
get Item Responses() Item Response[] تمام پاسخ‌های آیتم‌های موجود در پاسخ فرم را به همان ترتیبی که آیتم‌ها در فرم ظاهر می‌شوند، دریافت می‌کند.
get Respondent Email() String اگر تنظیم Form.setCollectEmail(collect) فعال باشد، آدرس ایمیل شخصی که پاسخی ارسال کرده است را برمی‌گرداند.
get Response For Item(item) Item Response پاسخ آیتم موجود در پاسخ این فرم را برای یک آیتم داده شده دریافت می‌کند.
get Timestamp() Date مهر زمانی ارسال پاسخ فرم را دریافت می‌کند.
submit() Form Response پاسخ را ارسال می‌کند.
to Prefilled Url() String یک URL برای فرمی تولید می‌کند که در آن پاسخ‌ها بر اساس پاسخ‌های موجود در این فرم، از قبل پر شده‌اند.
with Item Grade(gradedResponse) Form Response نمرات پاسخ آیتم داده شده را به پاسخ فرم اضافه می‌کند.
with Item Response(response) Form Response پاسخ آیتم داده شده را به پاسخ فرم اضافه می‌کند.

مستندات دقیق

get Edit Response Url()

یک 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

get Gradable Item Responses()

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

بازگشت

Item Response[] — مجموعه‌ای از پاسخ‌ها به هر آیتم سوال در فرم که پاسخ‌دهنده می‌تواند برای آن امتیاز دریافت کند.

مجوز

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

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

get Gradable Response For Item(item)

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

بازگشت

Item Response - پاسخ برای یک آیتم داده شده، یا اگر هیچ آیتمی وجود نداشته باشد و آیتم بدون امتیاز باشد، null است.


get Id()

شناسه‌ی پاسخ فرم را دریافت می‌کند. اگر پاسخ فرم ارسال نشده باشد، این متد 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 — شناسه پاسخ فرم، یا null اگر پاسخ فرم ارسال نشده باشد.

مجوز

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

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

get Item Responses()

تمام پاسخ‌های آیتم‌های موجود در پاسخ یک فرم را به همان ترتیبی که آیتم‌ها در فرم ظاهر می‌شوند، دریافت می‌کند. اگر پاسخ فرم حاوی پاسخی برای یک Text Item ، Date Item ، Time Item یا Paragraph Text Item مشخص نباشد، Item 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');

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

بازگشت

Item Response[] — مجموعه‌ای از پاسخ‌ها به هر مورد سؤال در فرم که پاسخ‌دهنده به آن پاسخ داده است.

مجوز

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

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

get Respondent Email()

اگر تنظیم 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

get Response For 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 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

بازگشت

Item Response - پاسخ برای یک مورد داده شده، یا در صورت وجود نداشتن null .


get Timestamp()

مهر زمانی ارسال پاسخ فرم را دریافت می‌کند.

برای پاسخ فرمی که اسکریپت ایجاد کرده اما هنوز ارسال نکرده است، این متد 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();

بازگشت

Form Response - پاسخی که به تازگی ایجاد شده و در مخزن پاسخ فرم ذخیره شده است.

مجوز

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

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

to Prefilled Url()

یک 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 - آدرس اینترنتی فرمی با پاسخ‌های از پیش پر شده.

مجوز

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

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

with Item Grade(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);

پارامترها

نام نوع توضیحات
graded Response Item Response

بازگشت

Form Response - این Form Response ، برای زنجیره‌سازی

مجوز

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

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

with Item Response(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 Item Response

بازگشت

Form Response — این Form Response ، برای زنجیره‌سازی.

مجوز

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

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