Es la respuesta al formulario en su conjunto. Se puede usar un FormResponse
de tres maneras: para acceder a las respuestas enviadas por un encuestado (consulta getItemResponses()
), enviar una respuesta al formulario de manera programática (consulta withItemResponse(response)
y submit()
) y generar una URL para el formulario que completa previamente los campos con las respuestas proporcionadas. Se puede crear FormResponse
o 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étodo | Tipo de datos que se muestra | Descripción breve |
---|---|---|
getEditResponseUrl() | String | Genera una URL que se puede usar para editar una respuesta que ya se envió. |
getGradableItemResponses() | ItemResponse[] | Obtiene todas las respuestas de elementos que contiene una respuesta de formulario, en el mismo orden en que aparecen los elementos en el formulario. |
getGradableResponseForItem(item) | ItemResponse | Obtiene la respuesta del elemento contenido en una respuesta de formulario para un elemento determinado. |
getId() | String | Obtiene el ID de la respuesta del formulario. |
getItemResponses() | ItemResponse[] | Obtiene todas las respuestas de elementos que contiene una respuesta de formulario, en el mismo orden en que aparecen los elementos en el formulario. |
getRespondentEmail() | String | Obtiene la dirección de correo electrónico de la persona que envió una respuesta, si el parámetro de configuración Form.setCollectEmail(collect) está habilitado. |
getResponseForItem(item) | ItemResponse | Obtiene la respuesta del elemento que se incluye en esta respuesta del formulario para un elemento determinado. |
getTimestamp() | Date | Obtiene la marca de tiempo del envío de una respuesta de formulario. |
submit() | FormResponse | Envía la respuesta. |
toPrefilledUrl() | String | Genera una URL para el formulario en el que las respuestas se completan previamente en función de las respuestas de este formulario. |
withItemGrade(gradedResponse) | FormResponse | Agrega las calificaciones de la respuesta de un elemento determinado a una respuesta de formulario. |
withItemResponse(response) | FormResponse | Agrega 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 la
configuración Form.setAllowResponseEdits(enabled)
está inhabilitada, 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 puede editar la respuesta, aunque necesitará una cuenta con acceso al formulario si está habilitado el parámetro de configuración Form.setRequireLogin(requireLogin)
. Si el parámetro de configuración Form.setCollectEmail(collect)
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 la envió, 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 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);
Devolvedor
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 que contiene 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 para permitir calificar una respuesta faltante, se muestra una ItemResponse
si la Item
correspondiente se puede calificar (es decir, tiene una puntuación), incluso si no hay una respuesta real. Sin embargo, si Item
no es ajustable, este método excluye ese elemento del 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()}`); } }
Devolvedor
ItemResponse[]
: Es el array de respuestas a cada pregunta del formulario para la cual el encuestado podría 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 del elemento contenido en una respuesta de formulario para un elemento determinado. Este método funciona de manera similar a getResponseForItem(item)
, pero para permitir calificar una respuesta faltante, se muestra una ItemResponse
si la Item
correspondiente se puede calificar (es decir, tiene una puntuación), incluso si no hay una respuesta real. Sin embargo, si Item
no es ajustable, 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
Nombre | Tipo | Descripción |
---|---|---|
item | Item |
Devolvedor
ItemResponse
: Es la respuesta para un elemento determinado o null
si no existe ninguno y el elemento no se califica.
getId()
Obtiene el ID de la respuesta del formulario. Este método muestra null
si no se envió la respuesta del 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 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()}`); }
Devolvedor
String
: Es el ID de la respuesta del formulario o null
si no se 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
getItemResponses()
Obtiene todas las respuestas de elementos que contiene 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 determinado TextItem
, DateItem
, TimeItem
o ParagraphTextItem
, el ItemResponse
que se muestra para ese elemento tendrá una string vacía como respuesta. Si la respuesta del formulario omite una respuesta para cualquier otro tipo de elemento, este método excluye ese elemento del arreglo 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 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()}'`); } }
Devolvedor
ItemResponse[]
: Es el array de respuestas a cada pregunta del formulario para la que el encuestado proporcionó 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 el parámetro de configuración Form.setCollectEmail(collect)
está habilitado.
Para una respuesta de formulario que la secuencia de comandos creó, pero aún no la envió, 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(); // 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()}`); }
Devolvedor
String
: Es la dirección de correo electrónico de la persona que envió esta respuesta, si está disponible, o null
si el guion 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 del elemento que se incluye en esta respuesta del 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
Nombre | Tipo | Descripción |
---|---|---|
item | Item |
Devolvedor
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 la envió, 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(); // Loops through the responses and logs the timestamp of each response to the console. for (const formResponse of formResponses) { console.log(`Timestamp: ${formResponse.getTimestamp()}`); }
Devolvedor
Date
: Es la marca de tiempo en la que se envió esta respuesta 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
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();
Devolvedor
FormResponse
: Es una respuesta creada recientemente que se guarda 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 este 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);
Devolvedor
String
: Es la URL de un formulario con respuestas completadas previamente.
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 una respuesta de formulario. Este método solo se aplica a las respuestas del formulario que ya se enviaron y solo afecta a las calificaciones almacenadas una vez que se envían. Este método también 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 retiene la última calificación. Si ItemResponse no contiene 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
Nombre | Tipo | Descripción |
---|---|---|
gradedResponse | ItemResponse |
Devolvedor
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 del formulario que creó la secuencia de comandos, pero que aún no envió; no puede afectar las respuestas almacenadas. Si se llama a este método 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
Nombre | Tipo | Descripción |
---|---|---|
response | ItemResponse |
Devolvedor
FormResponse
: Es 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