Class FormResponse

FormResponse

Una risposta al modulo nel suo complesso. Un FormResponse può essere utilizzato in tre modi: per accedere alle risposte inviate dall'intervistato (vedi getItemResponses()), per inviare in modo programmatico una risposta al modulo (vedi withItemResponse(response) e submit()) e generare un URL per il modulo che precompila i campi utilizzando le risposte fornite. È possibile creare o accedere a FormResponse da una 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());
  }
}

Metodi

MetodoTipo restituitoBreve descrizione
getEditResponseUrl()StringGenera un URL che può essere utilizzato per modificare una risposta già inviata.
getGradableItemResponses()ItemResponse[]Restituisce tutte le risposte degli elementi contenute in una risposta del modulo, nello stesso ordine in cui gli elementi appaiono nel modulo.
getGradableResponseForItem(item)ItemResponseRecupera la risposta all'elemento contenuta in una risposta del modulo per un determinato elemento.
getId()StringRestituisce l'ID della risposta del modulo.
getItemResponses()ItemResponse[]Restituisce tutte le risposte degli elementi contenute in una risposta del modulo, nello stesso ordine in cui gli elementi appaiono nel modulo.
getRespondentEmail()StringVisualizza l'indirizzo email della persona che ha inviato una risposta, se l'impostazione Form.setCollectEmail(collect) è attivata.
getResponseForItem(item)ItemResponseRecupera la risposta dell'elemento contenuta in questa risposta del modulo per un determinato elemento.
getTimestamp()DateRecupera il timestamp dell'invio di una risposta a un modulo.
submit()FormResponseInvia la risposta.
toPrefilledUrl()StringGenera un URL per il modulo in cui le risposte sono precompilate in base alle risposte contenute in questa risposta del modulo.
withItemGrade(gradedResponse)FormResponseAggiunge i voti della risposta all'elemento specificata in una risposta del modulo.
withItemResponse(response)FormResponseAggiunge la risposta dell'elemento specificata a una risposta del modulo.

Documentazione dettagliata

getEditResponseUrl()

Genera un URL che può essere utilizzato per modificare una risposta già inviata. Se l'impostazione Form.setAllowResponseEdits(enabled) viene disattivata, il link rimanda a una pagina in cui viene spiegato che la modifica delle risposte del modulo è disattivata. Chiunque visiti il link può modificare la risposta, ma ha bisogno di un account con accesso al modulo se l'impostazione Form.setRequireLogin(requireLogin) è attivata. Se l'impostazione Form.setCollectEmail(collect) è attivata, il modulo registra l'indirizzo email dell'utente che ha modificato la risposta anziché l'indirizzo email della persona intervistata originale.

Per una risposta del modulo creata dallo script ma non ancora inviato, questo metodo restituisce 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);

Ritorni

String: l'URL per modificare una risposta inviata.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

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

getGradableItemResponses()

Restituisce tutte le risposte degli elementi contenute in una risposta del modulo, nello stesso ordine in cui gli elementi appaiono nel modulo. Questo metodo funziona in modo simile a getItemResponses(), ma per consentire la valutazione di una risposta mancante, restituisce comunque un ItemResponse se il Item corrispondente può essere valutato (ovvero ha un valore in punti), anche se non esiste una risposta effettiva. Tuttavia, se Item non è valutabile, questo metodo esclude l'elemento dall'array restituito.

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

Ritorni

ItemResponse[]: un array di risposte a ogni elemento della domanda del modulo per il quale il partecipante potrebbe ricevere un punteggio.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

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

getGradableResponseForItem(item)

Recupera la risposta all'elemento contenuta in una risposta del modulo per un determinato elemento. Questo metodo funziona in modo simile a getResponseForItem(item), ma per consentire la valutazione di una risposta mancante, restituisce comunque un ItemResponse se il Item corrispondente può essere valutato (ovvero ha un valore in punti), anche se non esiste una risposta effettiva. Tuttavia, se Item non è valutabile, questo metodo restituisce 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()}`);
}

Parametri

NomeTipoDescrizione
itemItem

Ritorni

ItemResponse: risposta per un determinato elemento oppure null se non esiste e l'elemento è senza voto.


getId()

Restituisce l'ID della risposta del modulo. Questo metodo restituisce null se la risposta del modulo non è stata inviata.

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

Ritorni

String: l'ID della risposta del modulo oppure null se la risposta non è stata inviata.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

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

getItemResponses()

Restituisce tutte le risposte degli elementi contenute in una risposta del modulo, nello stesso ordine in cui gli elementi appaiono nel modulo. Se la risposta del modulo non contiene una risposta per un determinato TextItem, DateItem, TimeItem o ParagraphTextItem, la risposta ItemResponse restituita per quell'elemento avrà una stringa vuota. Se la risposta del modulo omette una risposta per qualsiasi altro tipo di elemento, questo metodo esclude quell'elemento dall'array restituito.

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

Ritorni

ItemResponse[]: un array di risposte a ogni elemento della domanda all'interno del modulo per il quale l'intervistato ha fornito una risposta.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

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

getRespondentEmail()

Visualizza l'indirizzo email della persona che ha inviato una risposta, se l'impostazione Form.setCollectEmail(collect) è attivata.

Per una risposta del modulo creata dallo script ma non ancora inviato, questo metodo restituisce 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()}`);
}

Ritorni

String: indirizzo email della persona che ha inviato la risposta, se disponibile, oppure null se lo script ha creato la risposta, ma non l'ha ancora inviata.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

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

getResponseForItem(item)

Recupera la risposta dell'elemento contenuta in questa risposta del modulo per un determinato elemento.

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

Parametri

NomeTipoDescrizione
itemItem

Ritorni

ItemResponse: risposta per un determinato elemento oppure null se non esiste.


getTimestamp()

Recupera il timestamp dell'invio di una risposta a un modulo.

Per una risposta del modulo creata dallo script ma non ancora inviato, questo metodo restituisce 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()}`);
}

Ritorni

Date: il timestamp a cui è stata inviata la risposta oppure null se lo script ha creato la risposta, ma non l'ha ancora inviata.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

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

submit()

Invia la risposta. Genera un'eccezione di scripting se la risposta è già stata inviata.

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

Ritorni

FormResponse: una risposta appena creata salvata nell'archivio delle risposte del modulo.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

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

toPrefilledUrl()

Genera un URL per il modulo in cui le risposte sono precompilate in base alle risposte contenute in questa risposta del modulo.

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

Ritorni

String: l'URL di un modulo con risposte precompilate.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

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

withItemGrade(gradedResponse)

Aggiunge i voti della risposta all'elemento specificata in una risposta del modulo. Questo metodo si applica solo alle risposte del modulo che sono già state inviate e interessa solo i voti archiviati una volta inviati. Inoltre, questo metodo aggiorna solo i voti della risposta all'articolo; non influisce sulla risposta effettiva (poiché la risposta è già stata inviata). Se questo metodo viene chiamato più volte per lo stesso elemento, viene conservato solo l'ultimo voto. Se ItemResponse non contiene voti, questo metodo rimuoverà i voti dell'elemento.

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

Parametri

NomeTipoDescrizione
gradedResponseItemResponse

Ritorni

FormResponse: questo FormResponse, per il concatenamento

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

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

withItemResponse(response)

Aggiunge la risposta dell'elemento specificata a una risposta del modulo. Questo metodo si applica solo alle risposte del modulo create dallo script ma non ancora inviato; non può influire sulle risposte archiviate. Se questo metodo viene chiamato più volte per lo stesso elemento, viene mantenuta solo la risposta dell'ultimo elemento.

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

Parametri

NomeTipoDescrizione
responseItemResponse

Ritorni

FormResponse - Questo FormResponse, per il concatenamento.

Autorizzazione

Gli script che utilizzano questo metodo richiedono l'autorizzazione con uno o più dei seguenti ambiti:

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