Class FormResponse

Resposta do formulário

Uma resposta ao formulário como um todo. Um FormResponse pode ser usado de três maneiras: para acessar as respostas enviadas por um respondente (consulte getItemResponses()), para enviar programaticamente uma resposta ao formulário (consulte withItemResponse(response) e submit()) e para gerar um URL para o formulário que preenche os campos usando as respostas fornecidas. FormResponses podem ser criados ou acessados em um 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(),
    );
  }
}

Métodos

MétodoTipo de retornoBreve descrição
getEditResponseUrl()StringGera um URL que pode ser usado para editar uma resposta que já foi 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)ItemResponseExtrai 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()StringRetorna o endereço de e-mail da pessoa que enviou uma resposta, se a configuração Form.setCollectEmail(collect) estiver ativada.
getResponseForItem(item)ItemResponseExtrai a resposta do item contida nesta resposta do formulário para um determinado item.
getTimestamp()DateRecebe o carimbo de data/hora de um envio de resposta a um formulário.
submit()FormResponseEnvia a resposta.
toPrefilledUrl()StringGera um URL para o formulário em que as respostas são preenchidas automaticamente com base nas respostas da resposta do formulário.
withItemGrade(gradedResponse)FormResponseAdiciona as notas da resposta do item especificado a uma resposta do formulário.
withItemResponse(response)FormResponseAdiciona a resposta do item especificado a uma resposta de formulário.

Documentação detalhada

getEditResponseUrl()

Gera um URL que pode ser usado para editar uma resposta que já foi enviada. Se a configuração Form.setAllowResponseEdits(enabled) estiver desativada, o link vai levar a uma página que explica que a edição de respostas de formulário está desativada. Qualquer pessoa que acesse o link pode editar a resposta, mas ela precisa ter 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 vai registrar o endereço de e-mail do usuário que editou a resposta em vez do endereço de e-mail do respondente 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);

Retornar

String: o URL para mudar 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 forma semelhante a getItemResponses(), mas para permitir a avaliação de uma resposta ausente, ele ainda retorna uma ItemResponse se o Item correspondente puder ser avaliado (ou seja, tiver um valor de ponto), mesmo que não haja uma resposta real. No entanto, se o Item não for gradável, esse método vai excluir esse 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()}`);
  }
}

Retornar

ItemResponse[]: uma matriz de respostas para cada item de pergunta no formulário em que o respondente 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)

Extrai a resposta do item contida em uma resposta de formulário para um determinado item. Esse método funciona de maneira semelhante ao getResponseForItem(item), mas, para permitir a avaliação de uma resposta ausente, ele ainda retorna uma ItemResponse se o Item correspondente puder ser avaliado (ou seja, tiver um valor de ponto), mesmo que não haja uma resposta real. No entanto, se o Item não for gradável, 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

Retornar

ItemResponse: a resposta para um determinado item ou null se nenhum existir e o item não tiver sido classificado.


getId()

Recebe o ID da resposta do formulário. Esse método retorna 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()}`);
}

Retornar

String: o ID da resposta do formulário ou null se a resposta não foi 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 vai excluir esse 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()}'`);
  }
}

Retornar

ItemResponse[]: uma matriz de respostas para cada item de pergunta no formulário para o qual 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()

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

Retornar

String: o endereço de e-mail da pessoa que enviou a 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)

Extrai a resposta do item contida nesta resposta do 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

Retornar

ItemResponse: a resposta para um determinado item ou null se nenhum existir.


getTimestamp()

Recebe o carimbo de data/hora de um envio de resposta a um 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()}`);
}

Retornar

Date: o carimbo de data/hora em que essa resposta foi enviada ou null se o script criou essa 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();

Retornar

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 preenchidas automaticamente com base nas respostas da resposta do 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);

Retornar

String: o URL de um formulário com respostas preenchidas previamente.

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 especificado a uma resposta do formulário. Esse método se aplica apenas a respostas de formulários que já foram enviadas e só afeta as notas armazenadas depois que elas são enviadas. Esse método também atualiza apenas 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 a ItemResponse não tiver notas, esse método vai remover as notas do item.

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

Parâmetros

NomeTipoDescrição
gradedResponseItemResponse

Retornar

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 especificado a uma resposta de formulário. Esse método se aplica apenas a respostas de formulário que o script criou, mas ainda não enviou. Ele não pode afetar 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

Retornar

FormResponse: 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