Class FormResponse

FormResponse

Uma resposta para o formulário como um todo. Um FormResponse pode ser usado de três maneiras: para acessar as respostas enviadas por um entrevistado (consulte getItemResponses()) para, de forma programática, envie uma resposta ao formulário (consulte withItemResponse(response) e submit()) e gere um URL para o formulário que preenche previamente os campos usando o respostas As FormResponses podem ser criadas ou acessadas em 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)ItemResponseExtrai a resposta do item contida em uma resposta de formulário para um determinado item.
getId()StringExtrai o ID da resposta do formulário.
getItemResponses()ItemResponse[]Recebe todas as respostas de itens contidas em uma resposta do 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)ItemResponseExtrai a resposta do item contida nessa resposta do formulário para um determinado item.
getTimestamp()DateRecebe o carimbo de data/hora para o 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 deste de 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 fornecido a uma resposta do formulário.

Documentação detalhada

getEditResponseUrl()

Gera um URL que pode ser usado para editar uma resposta já enviada. Se o A configuração Form.setAllowResponseEdits(enabled) está desativada, o link leva a uma página que explica que a edição de respostas do formulário está desativada. Qualquer pessoa que acessar o link poderá editar embora precisem de uma conta com acesso ao formulário se a configuração Form.setRequireLogin(requireLogin) estiver ativada. Se 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 respondente original.

Para uma resposta de formulário que o script criou, mas ainda não foi enviada, este 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 alterar uma resposta enviada.

Autorização

Os scripts que usam esse método precisam de 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 do 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 uma resposta ausente, ainda vai retornar uma ItemResponse se o Item correspondente podem ser avaliadas (com pontuação), mesmo que não haja uma resposta real. No entanto, se o Item não pode ser classificado. Esse método exclui 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 da pergunta no formulário relacionado ao respondente. para receber uma pontuação.

Autorização

Os scripts que usam esse método precisam de 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 semelhante a getResponseForItem(item), mas para permitir a avaliação de respostas ausentes, retorna uma ItemResponse se o Item correspondente puder ser avaliado (ou seja, tem um ponto ), mesmo que não haja uma resposta real. No entanto, se o Item não puder receber gradação, 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();

// 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 não existir e o item não tiver nota.


getId()

Extrai o ID da resposta do formulário. Esse método retornará null se a resposta do formulário não tiver sido foram enviados.

// 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 do formulário não tiver sido enviados.

Autorização

Os scripts que usam esse método precisam de 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 do formulário, na mesma ordem em que os itens aparecem no formulário. Se a resposta do formulário não tiver 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 para qualquer outro tipo de item, esse método exclui 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()}'`);
  }
}

Retornar

ItemResponse[]: uma matriz de respostas para cada item da pergunta no formulário relacionado ao respondente. forneceram uma resposta.

Autorização

Os scripts que usam esse método precisam de 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 foi enviada, este 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 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 precisam de 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 nessa 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 de um determinado item ou null se não houver nenhum.


getTimestamp()

Recebe o carimbo de data/hora para o envio de uma resposta de formulário.

Para uma resposta de formulário que o script criou, mas ainda não foi enviada, este 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 esta resposta, mas ainda não a enviou.

Autorização

Os scripts que usam esse método precisam de 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 scripting 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 precisam de 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 deste de 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 automaticamente.

Autorização

Os scripts que usam esse método precisam de 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 apenas a formulários respostas que já foram enviadas e só afeta as notas armazenadas depois que elas são enviados. Esse método também atualiza somente as notas da resposta do item. isso não afeta resposta real (pois a resposta já foi enviada). Se esse método for chamado várias vezes para o mesmo item, somente a última nota é mantida. Se o ItemResponse contiver sem notas, este método 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

Retornar

FormResponse: este FormResponse, para encadeamento

Autorização

Os scripts que usam esse método precisam de 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 do formulário. Este método se aplica somente a respostas de formulário que o script criou, mas ainda não foi enviado; isso não afeta as respostas armazenadas. Se esse é chamado várias vezes para o mesmo item, apenas a última resposta do item é retida.

// 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: este FormResponse, para encadeamento.

Autorização

Os scripts que usam esse método precisam de autorização com um ou mais dos seguintes escopos:

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