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
Metoda | Zwracany typ | Krótki opis |
---|---|---|
getEditResponseUrl() | String | Generuje 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) | ItemResponse | Pobiera odpowiedź elementu podaną w odpowiedzi formularza dla danego elementu. |
getId() | String | Pobiera 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() | String | Pobiera adres e-mail osoby, która przesłała odpowiedź, jeśli włączone jest ustawienie Form.setCollectEmail(collect) . |
getResponseForItem(item) | ItemResponse | Pobiera odpowiedź elementu podaną w tym formularzu odpowiedzi. |
getTimestamp() | Date | Pobiera sygnaturę czasową przesłania odpowiedzi na formularz. |
submit() | FormResponse | Przesyła odpowiedź. |
toPrefilledUrl() | String | Generuje URL formularza, w którym odpowiedzi są wstępnie wypełniane na podstawie odpowiedzi w tym formularzu. |
withItemGrade(gradedResponse) | FormResponse | Dodaje ocenę odpowiedzi elementu do odpowiedzi na formularz. |
withItemResponse(response) | FormResponse | Dodaje 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
Nazwa | Typ | Opis |
---|---|---|
item | Item |
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
Nazwa | Typ | Opis |
---|---|---|
item | Item |
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
Nazwa | Typ | Opis |
---|---|---|
gradedResponse | ItemResponse |
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
Nazwa | Typ | Opis |
---|---|---|
response | ItemResponse |
Powrót
FormResponse
– FormResponse
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