Class FormResponse

Ответ на форму

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