Class FormResponse

نموذجالاستجابة

ردّ على النموذج ككل يمكن استخدام FormResponse بثلاث طرق: للوصول إلى الإجابات التي أرسلها أحد المجيبين (راجِع getItemResponses())، لإرسال ردّ إلى النموذج بشكل آلي (راجِع withItemResponse(response) وsubmit())، ولإنشاء عنوان URL للنموذج الذي يملؤ الحقول مسبقًا باستخدام الإجابات المقدَّمة. يمكن إنشاء FormResponse أو الوصول إليها من 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(),
    );
  }
}

الطُرق

الطريقةنوع القيمة التي يتم عرضهاوصف قصير
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()}`,
  );
}

المعلمات

الاسمالنوعالوصف
itemItem

الإرجاع

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

المعلمات

الاسمالنوعالوصف
itemItem

الإرجاع

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

المعلمات

الاسمالنوعالوصف
gradedResponseItemResponse

الإرجاع

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

المعلمات

الاسمالنوعالوصف
responseItemResponse

الإرجاع

FormResponse — هذا الرمز FormResponse، لإنشاء سلسلة.

التفويض

تتطلّب النصوص البرمجية التي تستخدِم هذه الطريقة الحصول على إذن واحد أو أكثر من النطاقات التالية:

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