پاسخی به فرم به عنوان یک کل. یک 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