การตอบกลับแบบฟอร์มโดยรวม คุณใช้ FormResponse
ได้ 3 วิธี ได้แก่เพื่อเข้าถึง
คำตอบที่ผู้ตอบส่ง (ดู 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 สำหรับเปลี่ยนคำตอบที่ส่งแล้ว
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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[]
— อาร์เรย์ของคำตอบสำหรับทุกรายการคำถามภายในแบบฟอร์มที่ผู้ตอบใช้
อาจได้รับคะแนน
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
หากคำตอบของแบบฟอร์มไม่
ส่งแล้ว
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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[]
— อาร์เรย์ของคำตอบสำหรับทุกรายการคำถามภายในแบบฟอร์มที่ผู้ตอบใช้
ได้ให้คำตอบไว้
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
หากสคริปต์สร้างคำตอบนี้แต่ยังไม่ได้ส่ง
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
หากสคริปต์
สร้างคำตอบนี้แต่ยังไม่ได้ส่ง
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
— คำตอบที่สร้างใหม่ซึ่งบันทึกไว้ในที่เก็บคำตอบของแบบฟอร์ม
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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 ของแบบฟอร์มที่มีคำตอบที่กรอกไว้ล่วงหน้า
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
นี้สำหรับการทำห่วงโซ่
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
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
นี้สำหรับการทำเชน
การให้สิทธิ์
สคริปต์ที่ใช้เมธอดนี้ต้องมีการให้สิทธิ์กับขอบเขตต่อไปนี้อย่างน้อย 1 รายการ
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms