پاسخی به فرم به عنوان یک کل. 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 | شناسه پاسخ فرم را دریافت می کند. |
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
.
مجوز
اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:
-
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
- URL برای فرم با پاسخ های از پیش پر شده.
مجوز
اسکریپت هایی که از این روش استفاده می کنند نیاز به مجوز با یک یا چند مورد از حوزه های زیر دارند:
-
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