Class FormResponse

FormResponse

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

Metodi

MetodoTipo restituitoBreve descrizione
getEditResponseUrl()StringGenera un URL che può essere utilizzato per modificare una risposta già inviata.
getGradableItemResponses()ItemResponse[]Recupera tutte le risposte agli elementi contenute in una risposta a un modulo, nello stesso ordine in cui gli elementi vengono visualizzati nel modulo.
getGradableResponseForItem(item)ItemResponseRecupera la risposta all'elemento contenuta in una risposta a un modulo per un determinato elemento.
getId()String|nullRecupera l'ID della risposta a un modulo.
getItemResponses()ItemResponse[]Recupera tutte le risposte agli elementi contenute in una risposta a un modulo, nello stesso ordine in cui gli elementi vengono visualizzati 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 all'elemento contenuta in questa risposta a un modulo per un determinato elemento.
getTimestamp()DateRecupera il timestamp per l'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 in questa risposta a un modulo.
withItemGrade(gradedResponse)FormResponseAggiunge i voti della risposta all'elemento specificato a una risposta a un modulo.
withItemResponse(response)FormResponseAggiunge la risposta all'elemento specificato a una risposta a un modulo.

Documentazione dettagliata

getEditResponseUrl()

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

Per una risposta a un modulo creata dallo script ma non ancora inviata, 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);

Indietro

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

Recupera tutte le risposte agli elementi contenute in una risposta a un modulo, nello stesso ordine in cui gli elementi vengono visualizzati 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 è presente 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()}`);
  }
}

Indietro

ItemResponse[]: un array di risposte a ogni elemento della domanda all'interno del modulo per il quale il rispondente 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 a un 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 è presente 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

Indietro

ItemResponse: la risposta per un determinato elemento o null se non esiste e l'elemento non è classificato.


getId()

Recupera l'ID della risposta a un modulo. Questo metodo restituisce null se la risposta a un 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()}`);
}

Indietro

String|null: l'ID della risposta a un modulo o null se la risposta a un modulo 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()

Recupera tutte le risposte agli elementi contenute in una risposta a un modulo, nello stesso ordine in cui gli elementi vengono visualizzati nel modulo. Se la risposta a un modulo non contiene una risposta per un determinato TextItem, DateItem, TimeItem o ParagraphTextItem, il ItemResponse restituito per quell'elemento avrà una stringa vuota come risposta. Se la risposta a un modulo omette una risposta per qualsiasi altro tipo di articolo, 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 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()}'`);
  }
}

Indietro

ItemResponse[]: un array di risposte a ogni elemento della domanda all'interno del modulo per il quale chi risponde 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 a un modulo creata dallo script ma non ancora inviata, 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()}`);
}

Indietro

String: l'indirizzo email della persona che ha inviato questa risposta, se disponibile, o null se lo script ha creato questa 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 all'elemento contenuta in questa risposta a un 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

Indietro

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


getTimestamp()

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

Per una risposta a un modulo creata dallo script ma non ancora inviata, 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()}`);
}

Indietro

Date: il timestamp in cui è stata inviata questa risposta o null se lo script ha creato questa 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();

Indietro

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 in questa risposta a un 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);

Indietro

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 specificato a una risposta a un modulo. Questo metodo si applica solo alle risposte del modulo già inviate e influisce sui voti memorizzati solo dopo l'invio. Questo metodo aggiorna anche solo i voti della risposta all'elemento, non influisce sulla risposta effettiva (poiché è 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 rimuove i voti per l'elemento.

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

Parametri

NomeTipoDescrizione
gradedResponseItemResponse

Indietro

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 all'elemento specificato a una risposta a un modulo. Questo metodo si applica solo alle risposte al modulo che lo script ha creato ma non ancora inviato; non può influire sulle risposte archiviate. Se questo metodo viene chiamato più volte per lo stesso elemento, viene conservata solo l'ultima risposta dell'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

Indietro

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