Class FormResponse

FormResponse

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. FormResponses 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étodoTipo de retornoBreve descrição
getEditResponseUrl()StringGera 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)ItemResponseRecebe a resposta do item contida em uma resposta de formulário para um determinado item.
getId()StringRecebe 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()StringExtrai o endereço de e-mail da pessoa que enviou uma resposta se a configuração Form.setCollectEmail(collect) estiver ativada.
getResponseForItem(item)ItemResponseRecebe a resposta contida nesta resposta de formulário para um determinado item.
getTimestamp()DateRecebe o carimbo de data/hora do envio de uma resposta de formulário.
submit()FormResponseEnvia a resposta.
toPrefilledUrl()StringGera 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)FormResponseAdiciona as notas da resposta do item fornecido a uma resposta do formulário.
withItemResponse(response)FormResponseAdiciona 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

NomeTipoDescrição
itemItem

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

NomeTipoDescrição
itemItem

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

NomeTipoDescrição
gradedResponseItemResponse

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

NomeTipoDescrição
responseItemResponse

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