Class FormResponse

Odpowiedź

Odpowiedź na cały formularz. FormResponse może być używany na 3 sposoby: aby uzyskać dostęp do odpowiedzi przesłanych przez respondenta (patrz getItemResponses()), automatycznie przesłać odpowiedź na formularz (zobacz withItemResponse(response) i submit()) oraz wygenerować adres URL formularza, który wstępnie wypełnia pola przy użyciu podanych odpowiedzi. FormResponse można utworzyć lub otworzyć na stronie 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żyć do edytowania odpowiedzi, która została już przesłana.
getGradableItemResponses()ItemResponse[]Pobiera wszystkie odpowiedzi elementów zawarte w odpowiedzi na formularz w tej samej kolejności, w jakiej pojawiają się one w formularzu.
getGradableResponseForItem(item)ItemResponsePobiera odpowiedź elementu podaną w odpowiedzi formularza dla danego elementu.
getId()StringPobiera identyfikator odpowiedzi z formularza.
getItemResponses()ItemResponse[]Pobiera wszystkie odpowiedzi elementów zawarte w odpowiedzi na formularz w tej samej kolejności, w jakiej pojawiają się one w formularzu.
getRespondentEmail()StringPobiera adres e-mail osoby, która przesłała odpowiedź, jeśli włączone jest ustawienie Form.setCollectEmail(collect).
getResponseForItem(item)ItemResponsePobiera odpowiedź elementu podaną w tym formularzu odpowiedzi.
getTimestamp()DatePobiera sygnaturę czasową przesłania odpowiedzi na formularz.
submit()FormResponsePrzesyła odpowiedź.
toPrefilledUrl()StringGeneruje URL formularza, w którym odpowiedzi są wstępnie wypełniane na podstawie odpowiedzi w tym formularzu.
withItemGrade(gradedResponse)FormResponseDodaje ocenę odpowiedzi elementu do odpowiedzi na formularz.
withItemResponse(response)FormResponseDodaje wskazaną odpowiedź elementu do odpowiedzi na formularz.

Szczegółowa dokumentacja

getEditResponseUrl()

Generuje adres URL, którego można użyć 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 na formularz jest wyłączone. Każda osoba klikająca link może edytować tę odpowiedź, ale potrzebuje konta z dostępem do formularza, jeśli włączone jest ustawienie Form.setRequireLogin(requireLogin). Jeśli ustawienie Form.setCollectEmail(collect) jest włączone, w formularzu zapisany jest adres e-mail użytkownika, który edytował odpowiedź, a nie adres e-mail oryginalnego użytkownika.

W przypadku odpowiedzi formularza utworzonej przez skrypt, która jeszcze nie została przesłana, ta metoda zwraca 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);

Powrót

String – adres URL, którego dotyczy zmiana przesłanej odpowiedzi;

Upoważnienie

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

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

getGradableItemResponses()

Pobiera wszystkie odpowiedzi elementów zawarte w odpowiedzi na formularz w tej samej kolejności, w jakiej pojawiają się one w formularzu. Ta metoda działa podobnie jak właściwość getItemResponses(), ale aby umożliwić ocenę brakującej odpowiedzi, zwraca wartość ItemResponse, jeśli odpowiedni element Item może zostać oceniony (tzn. ma wartość punktową), nawet jeśli nie istnieje rzeczywista odpowiedź. Jeśli jednak Item nie może zostać ocenione, ta metoda wyklucza element z 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()}`);
  }
}

Powrót

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

Upoważnienie

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

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

getGradableResponseForItem(item)

Pobiera odpowiedź elementu podaną w odpowiedzi formularza dla danego elementu. Ta metoda działa podobnie jak właściwość getResponseForItem(item), ale aby umożliwić ocenę brakującej odpowiedzi, zwraca wartość ItemResponse, jeśli można ocenić odpowiedni element Item (tj. ma wartość punktową), nawet jeśli nie istnieje rzeczywista odpowiedź. Jeśli jednak Item nie może zostać sklasyfikowany, ta metoda zwraca 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

Powrót

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


getId()

Pobiera identyfikator odpowiedzi z formularza. Ta metoda zwraca wartość null, jeśli odpowiedź z formularza 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()}`);
}

Powrót

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

Upoważnienie

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

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

getItemResponses()

Pobiera wszystkie odpowiedzi elementów zawarte w odpowiedzi na formularz w tej samej kolejności, w jakiej pojawiają się one w formularzu. Jeśli odpowiedź na formularz nie zawiera odpowiedzi dla danego elementu TextItem, DateItem, TimeItem lub ParagraphTextItem, element ItemResponse zwracany dla danego elementu ma pusty ciąg. Jeśli odpowiedź na formularz pomija odpowiedź innego typu elementu, ta metoda wyklucza element z 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()}'`);
  }
}

Powrót

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 za pomocą co najmniej jednego 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 włączone jest ustawienie Form.setCollectEmail(collect).

W przypadku odpowiedzi formularza utworzonej przez skrypt, która jeszcze nie została przesłana, ta metoda zwraca 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()}`);
}

Powrót

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

Upoważnienie

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

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

getResponseForItem(item)

Pobiera odpowiedź elementu podaną w tym formularzu odpowiedzi.

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

Powrót

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


getTimestamp()

Pobiera sygnaturę czasową przesłania odpowiedzi na formularz.

W przypadku odpowiedzi formularza utworzonej przez skrypt, która jeszcze nie została przesłana, ta metoda zwraca 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()}`);
}

Powrót

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

Upoważnienie

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

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

submit()

Przesyła odpowiedź. zwraca wyjątek skryptowy, jeśli odpowiedź została już 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');

// Creates an empty response for the form.
const formResponse = form.createResponse();

// Submits an empty response.
formResponse.submit();

Powrót

FormResponse – nowo utworzona odpowiedź zapisana w magazynie odpowiedzi z formularza.

Upoważnienie

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

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

toPrefilledUrl()

Generuje URL formularza, w którym odpowiedzi są wstępnie wypełniane 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);

Powrót

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

Upoważnienie

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

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

withItemGrade(gradedResponse)

Dodaje ocenę odpowiedzi elementu do odpowiedzi na formularz. Ta metoda ma zastosowanie tylko do przesłanych już odpowiedzi na formularz i ma wpływ na przechowywane oceny dopiero po ich przesłaniu. Ta metoda aktualizuje tylko oceny odpowiedzi elementu. Nie wpływa na rzeczywistą odpowiedź (ponieważ została już przesłana). Jeśli ta sama metoda zostanie wywołana wiele razy w przypadku tego samego elementu, zostanie zachowana tylko ostatnia ocena. Jeśli element ItemResponse nie zawiera ocen, ta metoda usunie oceny 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

Powrót

FormResponse – to FormResponse na potrzeby łańcucha

Upoważnienie

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

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

withItemResponse(response)

Dodaje wskazaną odpowiedź elementu do odpowiedzi na formularz. Ta metoda dotyczy tylko odpowiedzi na formularz utworzonych przez skrypt, które jeszcze nie zostały przesłane. Nie ma to wpływu na przechowywane odpowiedzi. Jeśli ta sama metoda jest wywoływana wiele razy w przypadku tego samego elementu, przechowywana jest tylko ostatnia odpowiedź 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

Powrót

FormResponseFormResponse w celu tworzenia łańcuchów.

Upoważnienie

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

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