Ответ на форму в целом. Объект 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|null | Получает идентификатор ответа на форму. |
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 — Идентификатор ответа на форму или 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