Ответ на форму в целом. 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 Response
если соответствующий 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()}`); } }
Возвращаться
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 Response
если соответствующий 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 |
Возвращаться
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