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