Class FormResponse

FormResponse

Odpowiedź na cały formularz. Formularza FormResponse można użyć na 3 sposoby: aby uzyskać dostęp do odpowiedzi przesłanych przez użytkownika (patrz getItemResponses()), automatycznie przesłać odpowiedź na formularz (patrz withItemResponse(response) i submit()) lub wygenerować adres URL formularza, który wstępnie wypełnia pola podanymi odpowiedziami. Formularz FormResponse można tworzyć i otwierać z poziomu 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());
  }
}

Metody

MetodaZwracany typKrótki opis
getEditResponseUrl()Stringgeneruje adres URL, którego można używać do edytowania odpowiedzi, która została już przesłana.
getGradableItemResponses()ItemResponse[]Pobiera wszystkie odpowiedzi na elementy zawarte w odpowiedzi formularza w tej samej kolejności, w jakiej elementy występują w formularzu.
getGradableResponseForItem(item)ItemResponsePobiera odpowiedź dotyczącą elementu zawartą w formularzu odpowiedzi dotyczącej danego elementu.
getId()StringPobiera identyfikator odpowiedzi z formularza.
getItemResponses()ItemResponse[]Pobiera wszystkie odpowiedzi na elementy zawarte w odpowiedzi formularza w tej samej kolejności, w jakiej elementy występują w formularzu.
getRespondentEmail()StringPobiera adres e-mail osoby, która przesłała odpowiedź (jeśli jest włączone ustawienie Form.setCollectEmail(collect)).
getResponseForItem(item)ItemResponsePobiera odpowiedź dotyczącą danego elementu znajdującą się w tej odpowiedzi formularza.
getTimestamp()DatePobiera sygnaturę czasową przesłania odpowiedzi z formularza.
submit()FormResponsePrzesłanie odpowiedzi.
toPrefilledUrl()StringGeneruje adres URL formularza, w którym odpowiedzi są wstępnie wypełnione na podstawie odpowiedzi w tym formularzu.
withItemGrade(gradedResponse)FormResponseDodaje oceny danej odpowiedzi dotyczącej elementu do odpowiedzi do formularza.
withItemResponse(response)FormResponseDodaje podaną odpowiedź dotyczącą elementu do odpowiedzi do formularza.

Szczegółowa dokumentacja

getEditResponseUrl()

generuje adres URL, którego można używać do edytowania odpowiedzi, która została już przesłana. Jeśli ustawienie Form.setAllowResponseEdits(enabled) jest wyłączone, link prowadzi do strony z informacją, że edytowanie odpowiedzi w formularzu jest wyłączone. Każdy, kto kliknie link, może edytować odpowiedź, ale musi mieć konto z dostępem do formularza, jeśli jest włączone ustawienie Form.setRequireLogin(requireLogin). Jeśli ustawienie Form.setCollectEmail(collect) jest włączone, formularz rejestruje adres e-mail użytkownika, który edytował odpowiedź, a nie adres e-mail użytkownika, który pierwotnie opublikował odpowiedź.

W przypadku odpowiedzi na formularz, który został utworzony przez skrypt, ale jeszcze nie został przesłany, ta metoda zwraca wartość 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);

Powroty

String – adres URL, pod którym można zmienić przesłaną odpowiedź.

Upoważnienie

Skrypty korzystające z tej metody wymagają autoryzacji z co najmniej jednym z tych zakresów:

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

getGradableItemResponses()

Pobiera wszystkie odpowiedzi na elementy zawarte w odpowiedzi formularza w tej samej kolejności, w jakiej elementy występują w formularzu. Ta metoda działa podobnie do funkcji getItemResponses(), ale aby umożliwić ocenę brakującej odpowiedzi, zwraca wartość ItemResponse, jeśli odpowiedni element Item może zostać oceniony (czyli ma wartość punktową), nawet jeśli nie ma rzeczywistej odpowiedzi. Jeśli jednak elementu Item nie można przekształcić, ta metoda wykluczy go ze zwróconej tablicy.

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

Powroty

ItemResponse[] – tablica odpowiedzi na każdy element pytania w formularzu, za który użytkownik może otrzymać wynik.

Upoważnienie

Skrypty korzystające z tej metody wymagają autoryzacji z co najmniej jednym z tych zakresów:

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

getGradableResponseForItem(item)

Pobiera odpowiedź dotyczącą elementu zawartą w formularzu odpowiedzi dotyczącej danego elementu. Ta metoda działa podobnie do metody getResponseForItem(item), ale aby umożliwić ocenę brakującej odpowiedzi, zwraca ItemResponse, jeśli odpowiedni element Item może zostać oceniony (czyli ma wartość punktową), nawet jeśli nie ma rzeczywistej odpowiedzi. Jeśli jednak elementu Item nie można ocenieć, ta metoda zwraca wartość 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()}`);
}

Parametry

NazwaTypOpis
itemItem

Powroty

ItemResponse – odpowiedź dotycząca danego elementu lub null, jeśli nie istnieje i element bez oceny.


getId()

Pobiera identyfikator odpowiedzi z formularza. Ta metoda zwraca wartość null, jeśli odpowiedź na formularz nie została przesłana.

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

Powroty

String – identyfikator odpowiedzi na formularz lub null, jeśli odpowiedź na formularz nie została przesłana.

Upoważnienie

Skrypty korzystające z tej metody wymagają autoryzacji z co najmniej jednym z tych zakresów:

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

getItemResponses()

Pobiera wszystkie odpowiedzi na elementy zawarte w odpowiedzi formularza w tej samej kolejności, w jakiej elementy występują w formularzu. Jeśli odpowiedź na formularz nie zawiera odpowiedzi na TextItem, DateItem, TimeItem lub ParagraphTextItem, wartość ItemResponse zwrócona w przypadku tego elementu będzie zawierać pusty ciąg znaków. Jeśli w odpowiedzi na formularz pominięto odpowiedź w przypadku elementu innego typu, ta metoda wykluczy ten element ze zwróconej tablicy.

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

Powroty

ItemResponse[] – tablica odpowiedzi na każdy element pytania w formularzu, na który użytkownik udzielił odpowiedzi.

Upoważnienie

Skrypty korzystające z tej metody wymagają autoryzacji z co najmniej jednym z tych zakresów:

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

getRespondentEmail()

Pobiera adres e-mail osoby, która przesłała odpowiedź (jeśli jest włączone ustawienie Form.setCollectEmail(collect)).

W przypadku odpowiedzi na formularz, który został utworzony przez skrypt, ale jeszcze nie został przesłany, ta metoda zwraca wartość 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()}`);
}

Powroty

String – adres e-mail osoby, która przesłała odpowiedź (jeśli jest dostępna) lub null, jeśli skrypt utworzył odpowiedź, ale jeszcze jej nie przesłał.

Upoważnienie

Skrypty korzystające z tej metody wymagają autoryzacji z co najmniej jednym z tych zakresów:

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

getResponseForItem(item)

Pobiera odpowiedź dotyczącą danego elementu znajdującą się w tej odpowiedzi formularza.

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

Parametry

NazwaTypOpis
itemItem

Powroty

ItemResponse – odpowiedź dotycząca danego elementu lub null, jeśli nie istnieje.


getTimestamp()

Pobiera sygnaturę czasową przesłania odpowiedzi z formularza.

W przypadku odpowiedzi na formularz, który został utworzony przez skrypt, ale jeszcze nie został przesłany, ta metoda zwraca wartość 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()}`);
}

Powroty

Date – sygnatura czasowa przesłania odpowiedzi lub null, jeśli skrypt utworzył odpowiedź, ale jeszcze jej nie przesłał.

Upoważnienie

Skrypty korzystające z tej metody wymagają autoryzacji z co najmniej jednym z tych zakresów:

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

submit()

Przesłanie odpowiedzi. Jeśli odpowiedź została już przesłana, powoduje zgłoszenie wyjątku dotyczącego skryptów.

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

Powroty

FormResponse – nowo utworzona odpowiedź została zapisana w magazynie odpowiedzi formularza.

Upoważnienie

Skrypty korzystające z tej metody wymagają autoryzacji z co najmniej jednym z tych zakresów:

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

toPrefilledUrl()

Generuje adres URL formularza, w którym odpowiedzi są wstępnie wypełnione na podstawie odpowiedzi w tym formularzu.

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

Powroty

String – adres URL formularza z wstępnie wypełnionymi odpowiedziami.

Upoważnienie

Skrypty korzystające z tej metody wymagają autoryzacji z co najmniej jednym z tych zakresów:

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

withItemGrade(gradedResponse)

Dodaje oceny danej odpowiedzi dotyczącej elementu do odpowiedzi do formularza. Ta metoda ma zastosowanie tylko do odpowiedzi na formularz, które zostały już przesłane, i ma wpływ na zapisane oceny dopiero po ich przesłaniu. Ta metoda aktualizuje też tylko oceny odpowiedzi na element. Nie ma wpływu na rzeczywistą odpowiedź (ponieważ odpowiedź została już przesłana). Jeśli ta metoda zostanie wywołana kilka razy dla tego samego elementu, zachowana zostanie tylko ostatnia ocena. Jeśli element ItemResponse nie zawiera ocen, ta metoda usunie oceny z tego elementu.

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

Parametry

NazwaTypOpis
gradedResponseItemResponse

Powroty

FormResponse – ten FormResponse, do łańcuchów

Upoważnienie

Skrypty korzystające z tej metody wymagają autoryzacji z co najmniej jednym z tych zakresów:

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

withItemResponse(response)

Dodaje podaną odpowiedź dotyczącą elementu do odpowiedzi do formularza. Ta metoda ma zastosowanie tylko do odpowiedzi na formularz, które zostały utworzone przez skrypt, ale jeszcze nie zostały przesłane. Nie ma wpływu na przechowywane odpowiedzi. Jeśli ta metoda zostanie wywołana wielokrotnie dla tego samego elementu, zostanie zachowana tylko ostatnia odpowiedź dotycząca elementu.

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

Parametry

NazwaTypOpis
responseItemResponse

Powroty

FormResponse – ten element typu FormResponse do tworzenia łańcuchów.

Upoważnienie

Skrypty korzystające z tej metody wymagają autoryzacji z co najmniej jednym z tych zakresów:

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