Class FormResponse

FormResponse

Eine Antwort auf das Formular als Ganzes. Ein FormResponse kann auf drei Arten verwendet werden: die von einem Teilnehmer gesendeten Antworten (siehe getItemResponses()) an programmatischer Sender Antwort auf das Formular senden (siehe withItemResponse(response) und submit()) und eine URL für das Formular zu generieren, die Felder mit den bereitgestellten Antworten. FormResponses können über Form erstellt oder aufgerufen werden.

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

Methoden

MethodeRückgabetypKurzbeschreibung
getEditResponseUrl()StringErstellt eine URL, mit der eine bereits gesendete Antwort bearbeitet werden kann.
getGradableItemResponses()ItemResponse[]Ruft alle in einer Formularantwort enthaltenen Elementantworten in derselben Reihenfolge ab, in der die Elemente angezeigt werden in das Formular ein.
getGradableResponseForItem(item)ItemResponseRuft die Elementantwort ab, die in einer Formularantwort für ein bestimmtes Element enthalten ist.
getId()StringRuft die ID der Formularantwort ab.
getItemResponses()ItemResponse[]Ruft alle in einer Formularantwort enthaltenen Elementantworten in derselben Reihenfolge ab, in der die Elemente angezeigt werden in das Formular ein.
getRespondentEmail()StringRuft die E-Mail-Adresse der Person ab, die eine Antwort gesendet hat, wenn die Einstellung Form.setCollectEmail(collect) aktiviert ist.
getResponseForItem(item)ItemResponseRuft die Elementantwort ab, die in dieser Formularantwort für ein bestimmtes Element enthalten ist.
getTimestamp()DateRuft den Zeitstempel für das Senden einer Formularantwort ab.
submit()FormResponseSendet die Antwort.
toPrefilledUrl()StringErstellt eine URL für das Formular, in dem die Antworten anhand der Antworten in diesem
withItemGrade(gradedResponse)FormResponseFügt einer Formularantwort die Noten der angegebenen Elementantwort hinzu.
withItemResponse(response)FormResponseFügt die angegebene Elementantwort einer Formularantwort hinzu.

Detaillierte Dokumentation

getEditResponseUrl()

Erstellt eine URL, mit der eine bereits gesendete Antwort bearbeitet werden kann. Wenn die Form.setAllowResponseEdits(enabled) deaktiviert ist, führt der Link zu einer Seite, die erklärt, dass das Bearbeiten von Formularantworten deaktiviert ist. Alle Nutzer, die den Link aufrufen, können das Antwort erhalten, obwohl sie ein Konto mit Zugriff auf das Formular benötigen, wenn die Einstellung „Form.setRequireLogin(requireLogin)“ aktiviert ist. Wenn die Form.setCollectEmail(collect) aktiviert ist, wird im Formular die E-Mail-Adresse des Nutzers gespeichert, der die Antwort bearbeitet hat. statt an die E-Mail-Adresse des ursprünglichen Teilnehmers senden.

Für eine Formularantwort, die durch das Skript erstellt, aber noch nicht gesendet wurde, gibt diese Methode 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);

Rückflug

String: Die URL zum Ändern einer gesendeten Antwort.

Autorisierung

Skripts, die diese Methode verwenden, erfordern eine Autorisierung mit einem oder mehreren der folgenden Bereiche:

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

getGradableItemResponses()

Ruft alle in einer Formularantwort enthaltenen Elementantworten in derselben Reihenfolge ab, in der die Elemente angezeigt werden in das Formular ein. Diese Methode funktioniert ähnlich wie die getItemResponses()-Methode, ermöglicht aber eine Benotung fehlende Antwort vorhanden ist, wird dennoch ein ItemResponse zurückgegeben, wenn die entsprechende Item benotet werden kann (d. h., es gibt eine Punktzahl), auch wenn es keine tatsächliche Antwort gibt. Wenn die Item kann nicht benotet werden. Bei dieser Methode wird das Element aus dem zurückgegebenen Array ausgeschlossen.

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

Rückflug

ItemResponse[]: Array der Antworten auf alle Fragen im Formular, auf die sich der Teilnehmer bezieht eine Punktzahl erhalten.

Autorisierung

Skripts, die diese Methode verwenden, erfordern eine Autorisierung mit einem oder mehreren der folgenden Bereiche:

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

getGradableResponseForItem(item)

Ruft die Elementantwort ab, die in einer Formularantwort für ein bestimmtes Element enthalten ist. Diese Methode funktioniert ähnlich wie getResponseForItem(item), aber um fehlende Antworten zu benoten, gibt ItemResponse zurück, wenn die entsprechende Item benotet werden kann (d. h. einen Punkt hat). Wert) angezeigt wird, auch wenn es keine tatsächliche Antwort gibt. Wenn die Item jedoch nicht benotet werden kann, Diese Methode gibt null zurück.

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

Parameter

NameTypBeschreibung
itemItem

Rückflug

ItemResponse: Die Antwort für ein bestimmtes Element oder null, wenn kein Element vorhanden und das Element unbenotet ist.


getId()

Ruft die ID der Formularantwort ab. Diese Methode gibt null zurück, wenn die Formularantwort nicht gesendet.

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

Rückflug

String: Die ID der Formularantwort oder null, falls die Formularantwort noch nicht erstellt wurde. gesendet.

Autorisierung

Skripts, die diese Methode verwenden, erfordern eine Autorisierung mit einem oder mehreren der folgenden Bereiche:

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

getItemResponses()

Ruft alle in einer Formularantwort enthaltenen Elementantworten in derselben Reihenfolge ab, in der die Elemente angezeigt werden in das Formular ein. Wenn die Formularantwort keine Antwort für eine bestimmte TextItem enthält, DateItem, TimeItem oder ParagraphTextItem, die ItemResponse hat einen leeren String. Wenn in der Formularantwort ein für einen anderen Elementtyp erstellt, schließt diese Methode dieses Element aus dem zurückgegebenen Array aus.

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

Rückflug

ItemResponse[]: Array der Antworten auf alle Fragen im Formular, auf die sich der Teilnehmer bezieht hat eine Antwort gegeben.

Autorisierung

Skripts, die diese Methode verwenden, erfordern eine Autorisierung mit einem oder mehreren der folgenden Bereiche:

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

getRespondentEmail()

Ruft die E-Mail-Adresse der Person ab, die eine Antwort gesendet hat, wenn die Einstellung Form.setCollectEmail(collect) aktiviert ist.

Für eine Formularantwort, die durch das Skript erstellt, aber noch nicht gesendet wurde, gibt diese Methode 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()}`);
}

Rückflug

String: Die E-Mail-Adresse der Person, die diese Antwort gesendet hat (falls verfügbar) oder null, wenn die Antwort vom Skript erstellt, aber noch nicht gesendet wurde.

Autorisierung

Skripts, die diese Methode verwenden, erfordern eine Autorisierung mit einem oder mehreren der folgenden Bereiche:

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

getResponseForItem(item)

Ruft die Elementantwort ab, die in dieser Formularantwort für ein bestimmtes Element enthalten ist.

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

Parameter

NameTypBeschreibung
itemItem

Rückflug

ItemResponse – Die Antwort für ein bestimmtes Element oder null, wenn keins vorhanden ist.


getTimestamp()

Ruft den Zeitstempel für das Senden einer Formularantwort ab.

Für eine Formularantwort, die durch das Skript erstellt, aber noch nicht gesendet wurde, gibt diese Methode 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()}`);
}

Rückflug

Date: Der Zeitstempel, zu dem die Antwort gesendet wurde, oder null, wenn das Skript hat diese Antwort erstellt, aber noch nicht gesendet.

Autorisierung

Skripts, die diese Methode verwenden, erfordern eine Autorisierung mit einem oder mehreren der folgenden Bereiche:

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

submit()

Sendet die Antwort. Löst eine Skriptausnahme aus, wenn die Antwort bereits gesendet wurde.

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

Rückflug

FormResponse: Eine neu erstellte Antwort, die im Antwortspeicher des Formulars gespeichert wird.

Autorisierung

Skripts, die diese Methode verwenden, erfordern eine Autorisierung mit einem oder mehreren der folgenden Bereiche:

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

toPrefilledUrl()

Erstellt eine URL für das Formular, in dem die Antworten anhand der Antworten in diesem

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

Rückflug

String: Die URL für ein Formular mit vorausgefüllten Antworten.

Autorisierung

Skripts, die diese Methode verwenden, erfordern eine Autorisierung mit einem oder mehreren der folgenden Bereiche:

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

withItemGrade(gradedResponse)

Fügt einer Formularantwort die Noten der angegebenen Elementantwort hinzu. Diese Methode gilt nur für bereits eingegangene Antworten. Diese werden erst dann wirksam, wenn sie gesendet. Mit dieser Methode werden auch nur die Noten der Artikelantwort aktualisiert. wirkt sich dies nicht auf die tatsächliche Antwort (da die Antwort bereits gesendet wurde) Wenn diese Methode aufgerufen wird, mehrfach für dasselbe Element erhalten, wird nur die letzte Note beibehalten. Wenn „ItemResponse“ die Zeichenfolge keine Noten vorhanden sind, werden bei dieser Methode die Noten für das Element entfernt.

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

Parameter

NameTypBeschreibung
gradedResponseItemResponse

Rückflug

FormResponse – diese FormResponse, für Verkettung

Autorisierung

Skripts, die diese Methode verwenden, erfordern eine Autorisierung mit einem oder mehreren der folgenden Bereiche:

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

withItemResponse(response)

Fügt die angegebene Elementantwort einer Formularantwort hinzu. Diese Methode gilt nur für Formularantworten das Skript erstellt, aber noch nicht gesendet wurde; kann er sich nicht auf gespeicherte Antworten auswirken. Wenn dieses mehrmals für dasselbe Element aufgerufen wird, wird nur die letzte Elementantwort beibehalten.

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

Parameter

NameTypBeschreibung
responseItemResponse

Rückflug

FormResponse: Diese FormResponse zum Verketten.

Autorisierung

Skripts, die diese Methode verwenden, erfordern eine Autorisierung mit einem oder mehreren der folgenden Bereiche:

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