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 Получает идентификатор ответа формы.
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