Class FormResponse

FormResponse

Eine Antwort auf das Formular als Ganzes. Ein FormResponse kann auf drei Arten verwendet werden: um auf die von einem Teilnehmer eingereichten Antworten zuzugreifen (siehe getItemResponses()), um programmatisch eine Antwort auf das Formular zu senden (siehe withItemResponse(response) und submit()) und um eine URL für das Formular zu generieren, in der Felder mit den bereitgestellten Antworten vorausgefüllt werden. FormResponses können über ein Form erstellt oder darauf zugegriffen werden.

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

Methoden

MethodeRückgabetypKurzbeschreibung
getEditResponseUrl()StringGeneriert eine URL, mit der eine bereits gesendete Antwort bearbeitet werden kann.
getGradableItemResponses()ItemResponse[]Ruft alle Elementantworten ab, die in einer Formularantwort enthalten sind, in derselben Reihenfolge, in der die Elemente im Formular angezeigt werden.
getGradableResponseForItem(item)ItemResponseRuft die in einer Formularantwort enthaltene Antwort für ein bestimmtes Element ab.
getId()StringRuft die ID der Formularantwort ab.
getItemResponses()ItemResponse[]Ruft alle Elementantworten ab, die in einer Formularantwort enthalten sind, in derselben Reihenfolge, 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 in dieser Formularantwort enthaltene Elementantwort für ein bestimmtes Element ab.
getTimestamp()DateRuft den Zeitstempel für die Übermittlung einer Formularantwort ab.
submit()FormResponseDie Antwort wird gesendet.
toPrefilledUrl()StringGeneriert 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 einer Formularantwort die angegebene Elementantwort hinzu.

Detaillierte Dokumentation

getEditResponseUrl()

Generiert eine URL, mit der 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. Wenn die Einstellung Form.setRequireLogin(requireLogin) aktiviert ist, ist jedoch ein Konto mit Zugriff auf das Formular erforderlich. Wenn die Einstellung Form.setCollectEmail(collect) aktiviert ist, wird im Formular die E‑Mail-Adresse des Nutzers erfasst, der die Antwort bearbeitet hat, und nicht die E‑Mail-Adresse des ursprünglichen Antwortenden.

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

Rückflug

String: Die URL zum Ändern einer eingereichten Antwort.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

getGradableItemResponses()

Ruft alle Elementantworten ab, die in einer Formularantwort enthalten sind, in derselben Reihenfolge, in der die Elemente im Formular angezeigt werden. Diese Methode funktioniert ähnlich wie getItemResponses(). Damit eine fehlende Antwort benotet werden kann, wird jedoch weiterhin ein ItemResponse zurückgegeben, wenn das entsprechende Item benotet werden kann (d. h. einen Punktwert hat), auch wenn keine tatsächliche Antwort vorhanden ist. Wenn Item jedoch nicht bewertbar ist, wird das Element mit dieser Methode 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[]: Ein Array mit Antworten auf alle Fragen im Formular, für die der Teilnehmer eine Punktzahl erhalten konnte.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

getGradableResponseForItem(item)

Ruft die in einer Formularantwort enthaltene Antwort für ein bestimmtes Element ab. Diese Methode funktioniert ähnlich wie getResponseForItem(item). Damit eine fehlende Antwort bewertet werden kann, wird jedoch weiterhin ein ItemResponse zurückgegeben, wenn das entsprechende Item bewertet werden kann (d. h. einen Punktwert hat), auch wenn keine tatsächliche Antwort vorhanden ist. Wenn die Item jedoch nicht bewertbar ist, 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

Rückflug

ItemResponse: Die Antwort für ein bestimmtes Element oder null, wenn keine Antwort vorhanden ist und das Element nicht bewertet wurde.


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

Rückflug

String: Die ID der Formularantwort oder null, wenn die Formularantwort nicht gesendet wurde.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

getItemResponses()

Ruft alle Elementantworten ab, die in einer Formularantwort enthalten sind, in derselben Reihenfolge, in der die Elemente im Formular angezeigt werden. Wenn die Formularantwort keine Antwort für ein bestimmtes TextItem, DateItem, TimeItem oder ParagraphTextItem enthält, hat die für dieses Element zurückgegebene ItemResponse einen leeren String als Antwort. Wenn in der Formularantwort eine Antwort für einen anderen Fragetyp fehlt, wird dieses Element von dieser Methode 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 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[]: Ein Array mit Antworten auf alle Fragen im Formular, die der Befragte beantwortet hat.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

Rückflug

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

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

getResponseForItem(item)

Ruft die in dieser Formularantwort enthaltene Elementantwort für ein bestimmtes Element 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

Rückflug

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


getTimestamp()

Ruft den Zeitstempel für das Einreichen 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()}`);
}

Rückflug

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

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

submit()

Die Antwort wird gesendet. Löst eine Scripting-Ausnahme 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 wurde.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

toPrefilledUrl()

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

Rückflug

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

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

  • 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 Formularantworten, die bereits gesendet wurden, und wirkt sich nur auf gespeicherte Noten aus, sobald sie gesendet werden. Mit dieser Methode werden auch nur die Noten der Elementantwort aktualisiert. Die eigentliche Antwort wird nicht geändert, da sie 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 den Artikel entfernt.

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

Parameter

NameTypBeschreibung
gradedResponseItemResponse

Rückflug

FormResponse – diese FormResponse zur Verkettung

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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

withItemResponse(response)

Fügt einer Formularantwort die angegebene Elementantwort hinzu. Diese Methode gilt nur für Formularantworten, die vom Skript erstellt, aber noch nicht gesendet wurden. Sie kann sich nicht auf gespeicherte Antworten auswirken. Wenn diese Methode 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 zur Verkettung.

Autorisierung

Scripts, die diese Methode verwenden, benötigen eine Autorisierung für mindestens einen der folgenden Zugriffsbereiche:

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