تمثّل هذه السمة ردًا على النموذج ككل. يمكن استخدام 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()}`); }
المعلمات
الاسم | النوع | الوصف |
---|---|---|
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