Uma resposta ao formulário como um todo. Um FormResponse
pode ser usado de três maneiras: para acessar as respostas enviadas por um participante (consulte getItemResponses()
), enviar de maneira programática uma resposta ao formulário (consulte withItemResponse(response)
e submit()
) e gerar um URL para o formulário que preenche automaticamente os campos usando as respostas fornecidas. FormResponse
s podem ser criados ou acessados de um 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 retorno | Breve descrição |
---|---|---|
getEditResponseUrl() | String | Gera um URL que pode ser usado para editar uma resposta já enviada. |
getGradableItemResponses() | ItemResponse[] | Recebe todas as respostas de itens contidas em uma resposta de formulário, na mesma ordem em que os itens aparecem no formulário. |
getGradableResponseForItem(item) | ItemResponse | Recebe a resposta do item contida em uma resposta de formulário para um determinado item. |
getId() | String | Recebe o ID da resposta do formulário. |
getItemResponses() | ItemResponse[] | Recebe todas as respostas de itens contidas em uma resposta de formulário, na mesma ordem em que os itens aparecem no formulário. |
getRespondentEmail() | String | Extrai o endereço de e-mail da pessoa que enviou uma resposta se a configuração Form.setCollectEmail(collect) estiver ativada. |
getResponseForItem(item) | ItemResponse | Recebe a resposta contida nesta resposta de formulário para um determinado item. |
getTimestamp() | Date | Recebe o carimbo de data/hora do envio de uma resposta de formulário. |
submit() | FormResponse | Envia a resposta. |
toPrefilledUrl() | String | Gera um URL para o formulário em que as respostas são pré-preenchidas com base nas respostas desta resposta de formulário. |
withItemGrade(gradedResponse) | FormResponse | Adiciona as notas da resposta do item fornecido a uma resposta do formulário. |
withItemResponse(response) | FormResponse | Adiciona a resposta do item fornecido a uma resposta de formulário. |
Documentação detalhada
getEditResponseUrl()
Gera um URL que pode ser usado para editar uma resposta já enviada. Se a configuração Form.setAllowResponseEdits(enabled)
estiver desativada, o link direcionará a uma página que explica que a edição de respostas ao formulário está desativada. Qualquer pessoa que acessar o link poderá editar a resposta, mas precisará de uma conta com acesso ao formulário se a configuração Form.setRequireLogin(requireLogin)
estiver ativada. Se a configuração Form.setCollectEmail(collect)
estiver ativada, o formulário registrará o endereço de e-mail do usuário que editou a resposta em vez do endereço de e-mail do participante original.
Para uma resposta de formulário que o script criou, mas ainda não enviou, esse método retorna 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);
Retorno
String
: o URL para alterar uma resposta enviada.
Autorização
Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getGradableItemResponses()
Recebe todas as respostas de itens contidas em uma resposta de formulário, na mesma ordem em que os itens aparecem
no formulário. Esse método funciona de maneira semelhante a getItemResponses()
, mas, para permitir a avaliação
de uma resposta ausente, ele ainda retorna um ItemResponse
se o Item
correspondente puder ser avaliado (ou seja, tiver uma pontuação), mesmo que não haja uma resposta real. No entanto, se o
Item
não puder ser avaliado, esse método excluirá o item da matriz retornada.
// 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()}`); } }
Retorno
ItemResponse[]
: uma matriz de respostas para cada item de pergunta do formulário em que o participante pode receber uma pontuação.
Autorização
Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getGradableResponseForItem(item)
Recebe a resposta do item contida em uma resposta de formulário para um determinado item. Esse método funciona
de forma semelhante a getResponseForItem(item)
, mas, para permitir a avaliação de uma resposta ausente, ele ainda
vai retornar um ItemResponse
se o Item
correspondente puder ser avaliado (ou seja, tiver um valor
de pontos), mesmo que não haja uma resposta real. No entanto, se Item
não puder receber gradação,
esse método retornará 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
Nome | Tipo | Descrição |
---|---|---|
item | Item |
Retorno
ItemResponse
: a resposta para um determinado item ou null
se não houver nenhuma e o item não tiver nota.
getId()
Recebe o ID da resposta do formulário. Esse método retornará null
se a resposta do formulário não tiver sido enviada.
// 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()}`); }
Retorno
String
: o ID da resposta do formulário ou null
se ela não tiver sido enviada.
Autorização
Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getItemResponses()
Recebe todas as respostas de itens contidas em uma resposta de formulário, na mesma ordem em que os itens aparecem
no formulário. Se a resposta do formulário não contiver uma resposta para um determinado TextItem
,
DateItem
, TimeItem
ou ParagraphTextItem
, o ItemResponse
retornado para esse item terá uma string vazia como resposta. Se a resposta do formulário omitir uma resposta para qualquer outro tipo de item, esse método excluirá o item da matriz retornada.
// 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()}'`); } }
Retorno
ItemResponse[]
: uma matriz de respostas para cada item de pergunta do formulário a que o respondente forneceu uma resposta.
Autorização
Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getRespondentEmail()
Extrai o endereço de e-mail da pessoa que enviou uma resposta se a configuração Form.setCollectEmail(collect)
estiver ativada.
Para uma resposta de formulário que o script criou, mas ainda não enviou, esse método retorna 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()}`); }
Retorno
String
: o endereço de e-mail da pessoa que enviou essa resposta, se disponível, ou null
, se o script criou a resposta, mas ainda não a enviou.
Autorização
Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getResponseForItem(item)
Recebe a resposta contida nesta resposta de formulário para um determinado 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()); }
Parâmetros
Nome | Tipo | Descrição |
---|---|---|
item | Item |
Retorno
ItemResponse
: a resposta para um determinado item, ou null
se não houver nenhuma.
getTimestamp()
Recebe o carimbo de data/hora do envio de uma resposta de formulário.
Para uma resposta de formulário que o script criou, mas ainda não enviou, esse método retorna 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()}`); }
Retorno
Date
: o carimbo de data/hora em que essa resposta foi enviada ou null
se o script criou a resposta, mas ainda não a enviou.
Autorização
Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
submit()
Envia a resposta. Gera uma exceção de script se a resposta já tiver sido enviada.
// 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();
Retorno
FormResponse
: uma resposta recém-criada, salva no armazenamento de respostas do formulário.
Autorização
Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
toPrefilledUrl()
Gera um URL para o formulário em que as respostas são pré-preenchidas com base nas respostas desta resposta de formulário.
// 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);
Retorno
String
: o URL de um formulário com respostas preenchidas automaticamente.
Autorização
Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
withItemGrade(gradedResponse)
Adiciona as notas da resposta do item fornecido a uma resposta do formulário. Esse método se aplica somente a respostas de formulário que já foram enviadas e afeta apenas as notas armazenadas depois que elas são enviadas. Esse método também só atualiza as notas da resposta do item. Ele não afeta a resposta real, já que ela já foi enviada. Se esse método for chamado várias vezes para o mesmo item, apenas a última nota será mantida. Se o ItemResponse não tiver notas, esse método vai remover as notas do item.
// 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
Nome | Tipo | Descrição |
---|---|---|
gradedResponse | ItemResponse |
Retorno
FormResponse
: este FormResponse
, para encadeamento.
Autorização
Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
withItemResponse(response)
Adiciona a resposta do item fornecido a uma resposta de formulário. Esse método se aplica somente a respostas de formulário que o script criou, mas ainda não enviou. Ele não afeta as respostas armazenadas. Se esse método for chamado várias vezes para o mesmo item, apenas a última resposta do item será mantida.
// 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
Nome | Tipo | Descrição |
---|---|---|
response | ItemResponse |
Retorno
FormResponse
: este FormResponse
, para encadeamento.
Autorização
Os scripts que usam esse método exigem autorização com um ou mais dos seguintes escopos:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms