Class FormResponse

FormResponse

Eine Antwort auf das Formular als Ganzes. Ein FormResponse kann auf drei Arten verwendet werden: um auf die Antworten eines Befragten zuzugreifen (siehe getItemResponses()), um programmatisch eine Antwort für das Formular zu senden (siehe withItemResponse(response) und submit()) und um eine URL für das Formular zu generieren, die Felder mit den angegebenen Antworten vorab ausfüllt. FormResponses können über ein 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()StringHiermit wird eine URL generiert, über die eine bereits gesendete Antwort bearbeitet werden kann.
getGradableItemResponses()ItemResponse[]Ruft alle in einer Formularantwort enthaltenen Elementantworten in der Reihenfolge ab, in der die Elemente im Formular angezeigt werden.
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 der Reihenfolge ab, in der die Elemente im Formular angezeigt werden.
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 für ein bestimmtes Element in dieser Formularantwort ab.
getTimestamp()DateRuft den Zeitstempel für das Senden einer Formularantwort ab.
submit()FormResponseSendet die Antwort.
toPrefilledUrl()StringErzeugt eine URL für das Formular, in dem die Antworten basierend auf den Antworten in dieser Formularantwort vorausgefüllt werden.
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()

Hiermit wird eine URL generiert, über die eine bereits gesendete Antwort bearbeitet werden kann. Wenn die Einstellung Form.setAllowResponseEdits(enabled) deaktiviert ist, führt der Link zu einer Seite, auf der erklärt wird, dass das Bearbeiten von Formularantworten deaktiviert ist. Jeder, der den Link aufruft, kann die Antwort bearbeiten. Dazu ist jedoch ein Konto mit Zugriff auf das Formular erforderlich, wenn die Einstellung Form.setRequireLogin(requireLogin) aktiviert ist. Wenn die Einstellung Form.setCollectEmail(collect) aktiviert ist, wird im Formular die E-Mail-Adresse des Nutzers, der die Antwort bearbeitet hat, und nicht die E-Mail-Adresse des ursprünglichen Befragten aufgezeichnet.

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

Return

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 der Reihenfolge ab, in der die Elemente im Formular angezeigt werden. Diese Methode funktioniert ähnlich wie getItemResponses(). Damit eine fehlende Antwort jedoch benotet werden kann, gibt sie dennoch ein ItemResponse zurück, wenn die entsprechende Item benotet werden kann (d. h. eine Punktzahl hat), auch wenn es keine tatsächliche Antwort gibt. Wenn Item jedoch nicht benotet werden kann, schließt diese Methode das 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 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()}`);
  }
}

Return

ItemResponse[]: ein Array von Antworten auf jedes Frageelement im Formular, für das der Teilnehmer eine Punktzahl erhalten kann.

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). Damit eine fehlende Antwort jedoch benotet werden kann, wird immer noch ein ItemResponse zurückgegeben, wenn die entsprechende Item benotet werden kann (d. h. eine Punktzahl hat), auch wenn es keine tatsächliche Antwort gibt. Wenn Item jedoch nicht begradigt werden kann, gibt diese Methode 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

Return

ItemResponse – Die Antwort auf ein bestimmtes Element oder null, wenn kein Element vorhanden ist und das Element unbenotet ist.


getId()

Ruft die ID der Formularantwort ab. Diese Methode gibt null zurück, wenn die Formularantwort nicht 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');

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

Return

String: Die ID der Formularantwort oder null, wenn die Formularantwort 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

getItemResponses()

Ruft alle in einer Formularantwort enthaltenen Elementantworten in der Reihenfolge ab, in der die Elemente im Formular angezeigt werden. Wenn die Formularantwort keine Antwort für TextItem, DateItem, TimeItem oder ParagraphTextItem enthält, enthält die für dieses Element zurückgegebene ItemResponse einen leeren String als Antwort. Wenn die Formularantwort eine Antwort für einen anderen Elementtyp auslässt, 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()}'`);
  }
}

Return

ItemResponse[]: ein Array mit Antworten auf jedes Frageelement im Formular, auf das der Teilnehmer geantwortet hat.

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 vom Skript erstellt, aber noch nicht gesendet wurde, gibt diese Methode 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();

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

Return

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

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 für ein bestimmtes Element in dieser Formularantwort ab.

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

Return

ItemResponse – Die Antwort auf ein bestimmtes Element oder null, wenn keines vorhanden ist.


getTimestamp()

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

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

// Loops through the responses and logs the timestamp of each response to the console.
for (const formResponse of formResponses) {
  console.log(`Timestamp: ${formResponse.getTimestamp()}`);
}

Return

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

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

Return

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

Erzeugt eine URL für das Formular, in dem die Antworten basierend auf den Antworten in dieser Formularantwort vorausgefüllt werden.

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

Return

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 eingereichte Formularantworten und wirkt sich erst dann auf gespeicherte Noten aus, wenn diese gesendet wurden. Bei dieser Methode werden auch nur die Noten der Elementantwort aktualisiert. Sie hat keinen Einfluss auf die tatsächliche Antwort, da die Antwort bereits gesendet wurde. Wenn diese Methode mehrmals für dasselbe Element aufgerufen wird, wird nur die letzte Note beibehalten. Wenn die ItemResponse keine Noten enthält, werden mit 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

Return

FormResponse – dieses 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, die vom Skript erstellt, aber noch nicht gesendet wurden. Gespeicherte Antworten sind davon nicht betroffen. Wenn diese Methode für dasselbe Element mehrmals 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

Return

FormResponse: Dieses FormResponse für Verkettungen.

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