Class FormResponse

FormularzOdpowiedź

odpowiedź na cały formularz, FormResponse można używać na 3 sposoby: do uzyskiwania dostępu do odpowiedzi przesłanych przez respondenta (patrz getItemResponses()), do programowego przesyłania odpowiedzi do formularza (patrz withItemResponse(response)submit()) oraz do generowania adresu URL formularza, który wstępnie wypełnia pola za pomocą podanych odpowiedzi. FormResponse można utworzyć lub otworzyć z poziomu Form.

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

Metody

MetodaZwracany typKrótki opis
getEditResponseUrl()StringGeneruje adres URL, którego można użyć do edycji odpowiedzi, która została już przesłana.
getGradableItemResponses()ItemResponse[]Pobiera wszystkie odpowiedzi na elementy zawarte w odpowiedzi na formularz w tej samej kolejności, w jakiej elementy występują w formularzu.
getGradableResponseForItem(item)ItemResponsePobiera odpowiedź dotyczącą produktu zawartą w odpowiedzi na formularz dotyczący danego produktu.
getId()StringPobiera identyfikator odpowiedzi na formularz.
getItemResponses()ItemResponse[]Pobiera wszystkie odpowiedzi na elementy zawarte w odpowiedzi na formularz 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 ustawienie Form.setCollectEmail(collect) jest włączone.
getResponseForItem(item)ItemResponsePobiera odpowiedź dotyczącą produktu zawartą w tej odpowiedzi na formularz dotyczącą danego produktu.
getTimestamp()DatePobiera sygnaturę czasową przesłania odpowiedzi w formularzu.
submit()FormResponsePrzesyła odpowiedź.
toPrefilledUrl()StringGeneruje adres URL formularza, w którym odpowiedzi są wstępnie wypełnione na podstawie odpowiedzi w tym formularzu odpowiedzi.
withItemGrade(gradedResponse)FormResponseDodaje oceny odpowiedzi na dane zadanie do odpowiedzi w formularzu.
withItemResponse(response)FormResponseDodaje odpowiedź na dane pytanie do odpowiedzi na formularz.

Szczegółowa dokumentacja

getEditResponseUrl()

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

W przypadku odpowiedzi na formularz utworzonej przez skrypt, ale jeszcze nie przesłanej 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, pod którym można zmienić przesłaną odpowiedź.

Autoryzacja

Skrypty, które korzystają 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 na formularz w tej samej kolejności, w jakiej elementy występują w formularzu. Ta metoda działa podobnie do funkcji getItemResponses(), ale aby umożliwić ocenianie brakujących odpowiedzi, zwraca nadal wartość ItemResponse, jeśli odpowiadająca jej wartość Item może być oceniona (czyli ma przypisaną liczbę punktów), nawet jeśli nie ma odpowiedzi. Jeśli jednak Item nie jest skalowalny, ta metoda wyklucza ten element z zwracanego 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 wszystkie elementy pytania w formularzu, za które respondent może otrzymać ocenę.

Autoryzacja

Skrypty, które korzystają 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ą produktu zawartą w odpowiedzi na formularz dotyczący danego produktu. Ta metoda działa podobnie do funkcji getResponseForItem(item), ale aby umożliwić ocenianie brakujących odpowiedzi, nadal zwraca wartość ItemResponse, jeśli odpowiadająca jej wartość Item może być oceniona (czyli ma wartość punktowa), nawet jeśli nie ma odpowiedzi. Jeśli jednak Item nie jest skalowalny, 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ź dla danego produktu lub null, jeśli nie ma żadnej odpowiedzi i produkt nie jest oceniony.


getId()

Pobiera identyfikator odpowiedzi na formularz. 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()}`);
}

Powrót

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

Autoryzacja

Skrypty, które korzystają 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 na formularz w tej samej kolejności, w jakiej elementy występują w formularzu. Jeśli odpowiedź w formularzu nie zawiera odpowiedzi na TextItem, DateItem, TimeItem lub ParagraphTextItem, zwracana odpowiedź ItemResponse będzie miała pusty ciąg znaków. Jeśli odpowiedź formularza pomija odpowiedź na pytanie o inny typ elementu, ta metoda wyklucza ten element z zwracanego tablicznego wyniku.

// 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 wszystkie elementy pytania w formularzu, na które respondent udzielił odpowiedzi.

Autoryzacja

Skrypty, które korzystają 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 ustawienie Form.setCollectEmail(collect) jest włączone.

W przypadku odpowiedzi na formularz utworzonej przez skrypt, ale jeszcze nie przesłanej 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ępny) lub null, jeśli skrypt utworzył tę odpowiedź, ale jeszcze jej nie wysłał.

Autoryzacja

Skrypty, które korzystają 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ą produktu zawartą w tej odpowiedzi na formularz dotyczącą danego produktu.

// 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ź dla danego elementu lub null, jeśli nie ma żadnej odpowiedzi.


getTimestamp()

Pobiera sygnaturę czasową przesłania odpowiedzi w formularzu.

W przypadku odpowiedzi na formularz utworzonej przez skrypt, ale jeszcze nie przesłanej 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 – znacznik czasu, w którym ta odpowiedź została przesłana, lub null, jeśli skrypt utworzył tę odpowiedź, ale nie został ona jeszcze przesłana.

Autoryzacja

Skrypty, które korzystają 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()

Przesyła odpowiedź. Wyjątek skryptu, 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 formularza.

Autoryzacja

Skrypty, które korzystają 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 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 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.

Autoryzacja

Skrypty, które korzystają 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 odpowiedzi na dane zadanie do odpowiedzi w formularzu. Ta metoda dotyczy tylko odpowiedzi na formularz, które zostały już przesłane, i ma wpływ tylko na zapisane oceny po ich przesłaniu. Ta metoda aktualizuje tylko oceny odpowiedzi na zadanie. Nie ma wpływu na rzeczywistą odpowiedź (ponieważ została ona już przesłana). Jeśli ta metoda jest wywoływana wielokrotnie w przypadku tego samego elementu, zachowywana jest tylko ostatnia ocena. Jeśli odpowiedź na element zawiera oceny, ta metoda usunie oceny tego elementu.

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

Parametry

NazwaTypOpis
gradedResponseItemResponse

Powrót

FormResponse – ta FormResponse, aby utworzyć łańcuch

Autoryzacja

Skrypty, które korzystają 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 odpowiedź na dane pytanie do odpowiedzi na formularz. Ta metoda dotyczy tylko odpowiedzi na formularz, które zostały utworzone przez skrypt, ale nie zostały jeszcze przesłane. Nie może ona wpływać na zapisane odpowiedzi. Jeśli ta metoda jest wywoływana wielokrotnie w przypadku tego samego elementu, zachowana jest tylko odpowiedź na ostatnie wywołanie.

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

FormResponse – ta FormResponse służy do tworzenia łańcuszków.

Autoryzacja

Skrypty, które korzystają 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