Class FormResponse

ФормОтвет

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