Class FormResponse

FormResponse

Odpowiedź na cały formularz. Elementu FormResponse można używać na 3 sposoby: aby uzyskać dostęp odpowiedzi przesłanych przez respondenta (patrz getItemResponses()), aby automatycznie prześlij odpowiedź na formularz (patrz withItemResponse(response) i submit()) i wygeneruj URL formularza, który wstępnie wypełnia pola, korzystając z podanego przez nas odpowiedzi. Elementy FormResponse można tworzyć lub otwierać na urządzeniu 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 edycji już przesłanej odpowiedzi.
getGradableItemResponses()ItemResponse[]Pobiera wszystkie odpowiedzi na elementy zawarte w odpowiedzi na formularz w tej samej kolejności, w jakiej się pojawiają w formularzu.
getGradableResponseForItem(item)ItemResponsePobiera odpowiedź dotyczącą produktu znajdującą się w odpowiedzi na formularz dotyczącej danego elementu.
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 się pojawiają 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 na formularz.
getTimestamp()DatePobiera sygnaturę czasową przesłania odpowiedzi na formularz.
submit()FormResponsePrzesyła odpowiedź.
toPrefilledUrl()StringGeneruje adres URL formularza, w którym odpowiedzi są wstępnie wypełnione na podstawie odpowiedzi w tym formularza odpowiedzi.
withItemGrade(gradedResponse)FormResponseDodaje oceny danej odpowiedzi elementu do odpowiedzi na formularz.
withItemResponse(response)FormResponseDodaje podaną odpowiedź związaną z elementem do odpowiedzi na formularz.

Szczegółowa dokumentacja

getEditResponseUrl()

Generuje adres URL, którego można używać do edycji już przesłanej odpowiedzi. Jeśli Ustawienie Form.setAllowResponseEdits(enabled) jest wyłączone, link prowadzi do strony, która wyjaśnia, że edytowanie odpowiedzi w formularzu jest wyłączone. Każda osoba, która otworzy link, będzie mogła edytować ale gdy włączone jest ustawienie Form.setRequireLogin(requireLogin), potrzebują konta z dostępem do formularza. Jeśli Form.setCollectEmail(collect) jest włączone, formularz rejestruje adres e-mail użytkownika, który edytował odpowiedź zamiast adresu e-mail osoby,

W przypadku odpowiedzi na formularz, która została utworzona przez skrypt, ale jeszcze nieprzesł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 służący do zmiany przesłanej odpowiedzi.

Autoryzacja

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 na formularz w tej samej kolejności, w jakiej się pojawiają w formularzu. Ta metoda działa podobnie jak getItemResponses(), ale umożliwia ocenianie brak odpowiedzi, zwracana jest wartość ItemResponse, jeśli odpowiadająca mu Item można ocenić (tj. ma wartość punktową), nawet jeśli nie ma rzeczywistej odpowiedzi. Jeśli jednak Funkcji Item nie można skalować. Ta metoda wyklucza dany 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 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, w przypadku którego respondent może otrzymać wynik.

Autoryzacja

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ą produktu znajdującą się w odpowiedzi na formularz dotyczącej danego elementu. Ta metoda działa podobnie jak getResponseForItem(item), ale aby umożliwić ocenianie brakującej odpowiedzi, nadal jest zwraca ItemResponse, jeśli można ocenić odpowiadające mu Item (tzn. jeśli ma punkt ), nawet jeśli nie ma na nie rzeczywistej odpowiedzi. Jeśli jednak Item nie da się dostosować, 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ź na dany element lub null, jeśli nie ma takiej opcji i element nie ma oceny.


getId()

Pobiera identyfikator odpowiedzi na formularz. Ta metoda zwraca wartość null, jeśli odpowiedź w formularzu nie zawiera zostało przesłane.

// 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ź w formularzu nie została przesłano.

Autoryzacja

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 na formularz w tej samej kolejności, w jakiej się pojawiają w formularzu. Jeśli odpowiedź w formularzu nie zawiera odpowiedzi na dane TextItem, DateItem, TimeItem lub ParagraphTextItem, ItemResponse zwrócony dla tego elementu, będą miały w odpowiedzi pusty ciąg znaków. Jeśli odpowiedź na formularz pominie dla dowolnego innego typu elementu, ta metoda wyklucza 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()}'`);
  }
}

Powrót

ItemResponse[] – tablica odpowiedzi na każdy element pytania w formularzu, w przypadku którego respondent podał odpowiedź.

Autoryzacja

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óra została utworzona przez skrypt, ale jeszcze nieprzesł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ępna), lub null, jeśli skrypt utworzył odpowiedź, ale jeszcze jej nie przesłał.

Autoryzacja

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 na formularz.

// 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ź na dany element lub null, jeśli nie ma żadnej.


getTimestamp()

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

W przypadku odpowiedzi na formularz, która została utworzona przez skrypt, ale jeszcze nieprzesł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 – sygnatura czasowa przesłania tej odpowiedzi, lub null, jeśli skrypt użytkownik utworzył tę odpowiedź, ale jeszcze jej nie przesłał.

Autoryzacja

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

Przesyła odpowiedź. Zgłasza 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 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 formularza 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 ze wstępnie wypełnionymi odpowiedziami.

Autoryzacja

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 elementu do odpowiedzi na formularz. Ta metoda ma zastosowanie tylko do formularza odpowiedzi, które zostały już przesłane, i ma wpływ tylko na zapisane oceny, przesłano. Ta metoda aktualizuje też tylko oceny odpowiedzi elementu; nie ma wpływu na rzeczywista odpowiedź (ponieważ odpowiedź została już przesłana). Jeśli ta metoda jest wywoływana wiele razy za ten sam element, zachowujemy tylko ostatnią ocenę. Jeśli pole ItemResponse zawiera brak ocen, ta metoda spowoduje usunięcie ocen 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

FormResponseFormResponse, łańcuch

Autoryzacja

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ź związaną z elementem do odpowiedzi na formularz. Ta metoda ma zastosowanie tylko do odpowiedzi na pytania w formularzu że skrypt został utworzony, ale jeszcze nie został przesłany; nie ma to wpływu na przechowywane odpowiedzi. Jeśli jest wywoływana wielokrotnie dla tego samego elementu, zachowuje tylko ostatnią odpowiedź.

// 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 do łańcuchów.

Autoryzacja

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