Class FormResponse

FormResponse

Una respuesta al formulario en su totalidad. Se puede usar FormResponse de tres maneras: para acceder las respuestas enviadas por los encuestados (ver getItemResponses()), a fin de que envía una respuesta al formulario (consulta withItemResponse(response) y submit()) y genera una URL para el formulario que completa previamente los campos con la respuestas. Se pueden crear FormResponse o se puede acceder a ellos desde un 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());
  }
}

Métodos

MétodoTipo de datos que se muestraDescripción breve
getEditResponseUrl()StringGenera una URL que se puede usar para editar una respuesta que ya se envió.
getGradableItemResponses()ItemResponse[]Obtiene todas las respuestas de elementos incluidas en una respuesta de formulario, en el mismo orden en que aparecen los elementos. en el formulario.
getGradableResponseForItem(item)ItemResponseObtiene la respuesta de un elemento contenida en una respuesta de formulario para un elemento determinado.
getId()StringObtiene el ID de la respuesta del formulario.
getItemResponses()ItemResponse[]Obtiene todas las respuestas de elementos incluidas en una respuesta de formulario, en el mismo orden en que aparecen los elementos. en el formulario.
getRespondentEmail()StringObtiene la dirección de correo electrónico de la persona que envió una respuesta, si está habilitada la configuración Form.setCollectEmail(collect).
getResponseForItem(item)ItemResponseObtiene la respuesta de un elemento incluida en esta respuesta de formulario para un elemento determinado.
getTimestamp()DateObtiene la marca de tiempo del envío de una respuesta de formulario.
submit()FormResponseEnvía la respuesta.
toPrefilledUrl()StringGenera una URL para el formulario en el que las respuestas se completan previamente en función de las respuestas de esta respuesta de formulario.
withItemGrade(gradedResponse)FormResponseAgrega las calificaciones de la respuesta de un elemento determinado a la respuesta de un formulario.
withItemResponse(response)FormResponseAgrega la respuesta de un elemento determinado a una respuesta de formulario.

Documentación detallada

getEditResponseUrl()

Genera una URL que se puede usar para editar una respuesta que ya se envió. Si el botón Se inhabilitó el parámetro de configuración Form.setAllowResponseEdits(enabled); el vínculo dirige a una página que explica que está inhabilitada la edición de respuestas del formulario. Cualquier persona que visite el vínculo podrá editar la pero necesitan una cuenta con acceso al formulario si el parámetro de configuración Form.setRequireLogin(requireLogin) está habilitado. Si el elemento Form.setCollectEmail(collect) el parámetro de configuración está habilitado, el formulario registra la dirección de correo electrónico del usuario que editó la respuesta en lugar de la dirección de correo electrónico del encuestado original.

Para una respuesta de formulario que la secuencia de comandos creó, pero aún no se envió, este método devuelve 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);

Volver

String: Es la URL para cambiar una respuesta enviada.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getGradableItemResponses()

Obtiene todas las respuestas de elementos incluidas en una respuesta de formulario, en el mismo orden en que aparecen los elementos. en el formulario. Este método funciona de manera similar a getItemResponses(), pero permite la calificación una respuesta faltante, igualmente se muestra un ItemResponse si el Item correspondiente Se puede calificar (es decir, tiene una puntuación), incluso si no hay una respuesta real. Sin embargo, si el Item no se puede calificar; este método excluye ese elemento de su array que se muestra.

// 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()}`);
  }
}

Volver

ItemResponse[]: Array de respuestas para cada elemento de pregunta del formulario para el cual el encuestado responde podrían recibir una puntuación.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getGradableResponseForItem(item)

Obtiene la respuesta de un elemento contenida en una respuesta de formulario para un elemento determinado. Este método funciona de manera similar a getResponseForItem(item), pero para permitir la calificación de una respuesta faltante, sigue devuelve una ItemResponse si se puede calificar el Item correspondiente (es decir, si tiene un value), incluso si no hay una respuesta real. Sin embargo, si Item no se puede calificar, sucederá lo siguiente: este método muestra 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()}`);
}

Parámetros

NombreTipoDescripción
itemItem

Volver

ItemResponse: Es la respuesta para un elemento determinado, o null si no existe ninguno y el elemento no está calificado.


getId()

Obtiene el ID de la respuesta del formulario. Este método muestra null si la respuesta del formulario no tiene se envió.

// 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()}`);
}

Volver

String: Es el ID de la respuesta del formulario, o null si no se realizó la respuesta del formulario. enviados.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getItemResponses()

Obtiene todas las respuestas de elementos incluidas en una respuesta de formulario, en el mismo orden en que aparecen los elementos. en el formulario. Si la respuesta del formulario no contiene una respuesta para un TextItem determinado, DateItem, TimeItem o ParagraphTextItem, el ItemResponse que se muestre para ese elemento tendrán una cadena vacía como respuesta. Si en la respuesta del formulario se omite un para cualquier otro tipo de elemento, este método excluye ese elemento de su array devuelto.

// 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()}'`);
  }
}

Volver

ItemResponse[]: Es un array de respuestas a cada elemento de pregunta del formulario para el cual el encuestado responde. dio una respuesta.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getRespondentEmail()

Obtiene la dirección de correo electrónico de la persona que envió una respuesta, si está habilitada la configuración Form.setCollectEmail(collect).

Para una respuesta de formulario que la secuencia de comandos creó, pero aún no se envió, este método devuelve 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()}`);
}

Volver

String: Es la dirección de correo electrónico de la persona que envió esta respuesta (si está disponible) o null si la secuencia de comandos creó la respuesta, pero aún no la envió.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

getResponseForItem(item)

Obtiene la respuesta de un elemento incluida en esta respuesta de formulario para un elemento determinado.

// 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());
}

Parámetros

NombreTipoDescripción
itemItem

Volver

ItemResponse: Es la respuesta para un elemento determinado, o null si no existe ninguno.


getTimestamp()

Obtiene la marca de tiempo del envío de una respuesta de formulario.

Para una respuesta de formulario que la secuencia de comandos creó, pero aún no se envió, este método devuelve 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()}`);
}

Volver

Date: Es la marca de tiempo en la que se envió esta respuesta, o null si la secuencia de comandos creó esta respuesta, pero aún no la envió.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

submit()

Envía la respuesta. Muestra una excepción de secuencia de comandos si ya se envió la respuesta.

// 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();

Volver

FormResponse: Es una respuesta recién creada que se guardó en el almacén de respuestas del formulario.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

toPrefilledUrl()

Genera una URL para el formulario en el que las respuestas se completan previamente en función de las respuestas de esta respuesta de formulario.

// 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);

Volver

String: Es la URL de un formulario con respuestas ya completadas.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

withItemGrade(gradedResponse)

Agrega las calificaciones de la respuesta de un elemento determinado a la respuesta de un formulario. Este método solo se aplica a respuestas ya enviadas y solo afecta a las calificaciones almacenadas una vez que se envían enviados. Además, este método solo actualiza las calificaciones de la respuesta del elemento. no afecta la respuesta real (dado que la respuesta ya se envió). Si se llama a este método varias veces para el mismo elemento, solo se conserva la última calificación. Si el elemento ItemResponse contiene si no hay calificaciones, este método quitará las calificaciones del elemento.

// 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);

Parámetros

NombreTipoDescripción
gradedResponseItemResponse

Volver

FormResponse: este FormResponse, para encadenamiento

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms

withItemResponse(response)

Agrega la respuesta de un elemento determinado a una respuesta de formulario. Este método solo se aplica a las respuestas de formularios que la secuencia de comandos creó, pero aún no se envió; no afecta las respuestas almacenadas. Si esta se llama varias veces para el mismo elemento, solo se conserva la última respuesta del elemento.

// 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();

Parámetros

NombreTipoDescripción
responseItemResponse

Volver

FormResponse: Este FormResponse, para el encadenamiento.

Autorización

Las secuencias de comandos que usan este método requieren autorización con uno o más de los siguientes alcances:

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms