Ответ на форму в целом. 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