Odpowiedź na formularz jako całość. Form
można używać na 3 sposoby: aby uzyskać dostęp do odpowiedzi przesłanych przez respondenta (patrz get
), aby programowo przesłać odpowiedź do formularza (patrz with
i submit()
) oraz aby wygenerować adres URL formularza, który wstępnie wypełnia pola za pomocą podanych odpowiedzi. Form
można tworzyć lub uzyskiwać do nich dostęp z 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
Metoda | Zwracany typ | Krótki opis |
---|---|---|
get | String | Generuje adres URL, którego można użyć do edytowania przesłanej już odpowiedzi. |
get | Item | Pobiera wszystkie odpowiedzi na pytania zawarte w odpowiedzi na formularz w tej samej kolejności, w jakiej pojawiają się one w formularzu. |
get | Item | Pobiera odpowiedź na pytanie zawartą w odpowiedzi na formularz dla danego pytania. |
get | String | Pobiera identyfikator odpowiedzi na formularz. |
get | Item | Pobiera wszystkie odpowiedzi na pytania zawarte w odpowiedzi na formularz w tej samej kolejności, w jakiej pojawiają się one w formularzu. |
get | String | Pobiera adres e-mail osoby, która przesłała odpowiedź, jeśli włączone jest ustawienie Form.setCollectEmail(collect) . |
get | Item | Pobiera odpowiedź na element zawartą w tej odpowiedzi na formularz dla danego elementu. |
get | Date | Pobiera sygnaturę czasową przesłania odpowiedzi w formularzu. |
submit() | Form | przesyła odpowiedź. |
to | String | Generuje adres URL formularza, w którym odpowiedzi są wstępnie wypełnione na podstawie odpowiedzi w tym formularzu. |
with | Form | Dodaje oceny odpowiedzi na pytanie do odpowiedzi w formularzu. |
with | Form | Dodaje podaną odpowiedź na pytanie do odpowiedzi na formularz. |
Szczegółowa dokumentacja
get Edit Response Url()
Generuje adres URL, którego można użyć do edytowania przesłanej już odpowiedzi. Jeśli ustawienieForm.setAllowResponseEdits(enabled)
jest wyłączone, link prowadzi do strony, na której jest wyjaśnione, że edytowanie odpowiedzi w formularzu jest wyłączone. Każda osoba, która otworzy link, może edytować odpowiedź, ale jeśli włączone jest ustawienie
, musi mieć konto z dostępem do formularza. Jeśli to Form.setRequireLogin(requireLogin)Form.setCollectEmail(collect)
ustawienie jest włączone, formularz rejestruje adres e-mail użytkownika, który edytował odpowiedź, a nie adres e-mail pierwotnego respondenta.
W przypadku odpowiedzi na formularz, która została utworzona przez skrypt, ale nie została jeszcze przesłana, 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);
Powrót
String
– adres URL do zmiany przesłanej odpowiedzi.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
get Gradable Item Responses()
Pobiera wszystkie odpowiedzi na pytania zawarte w odpowiedzi na formularz w tej samej kolejności, w jakiej pojawiają się one w formularzu. Ta metoda działa podobnie do metody get
, ale aby umożliwić ocenę brakującej odpowiedzi, nadal zwraca wartość Item
, jeśli odpowiedni element Item
może zostać oceniony (czyli ma wartość punktową), nawet jeśli nie ma rzeczywistej odpowiedzi. Jeśli jednak Item
nie można ocenić, ta metoda wyklucza ten element z zwracanej 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
Item
– tablica odpowiedzi na wszystkie pytania w formularzu, za które respondent może otrzymać punkty.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
get Gradable Response For Item(item)
Pobiera odpowiedź na pytanie zawartą w odpowiedzi na formularz dla danego pytania. Ta metoda działa podobnie do get
, ale aby umożliwić ocenę brakującej odpowiedzi, nadal zwraca Item
, jeśli odpowiedni element Item
może zostać oceniony (czyli ma wartość punktową), nawet jeśli nie ma rzeczywistej odpowiedzi. Jeśli jednak Item
nie jest ocenialny, 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
Item
– odpowiedź na dany element lub null
, jeśli nie ma odpowiedzi, a element nie jest oceniony.
get Id()
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 korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
get Item Responses()
Pobiera wszystkie odpowiedzi na pytania 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 na dane Text
, Date
, Time
lub Paragraph
, Item
zwrócone dla tego elementu będzie zawierać pusty ciąg znaków jako odpowiedź. Jeśli odpowiedź w formularzu pomija odpowiedź dla dowolnego innego typu elementu, ta metoda wyklucza ten element z zwracanej 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
Item
– tablica odpowiedzi na wszystkie pytania w formularzu, na które respondent udzielił odpowiedzi.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
get Respondent Email()
Pobiera adres e-mail osoby, która przesłała odpowiedź, jeśli włączone jest ustawienie Form.setCollectEmail(collect)
.
W przypadku odpowiedzi na formularz, która została utworzona przez skrypt, ale nie została jeszcze przesłana, 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()}`); }
Powrót
String
– adres e-mail osoby, która przesłała tę odpowiedź (jeśli jest dostępny), lub null
, jeśli odpowiedź została utworzona przez skrypt, ale nie została jeszcze przesłana.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
get Response For Item(item)
Pobiera odpowiedź na element zawartą w tej odpowiedzi na formularz dla danego 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'); // 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
Item
– odpowiedź na dany element lub null
, jeśli nie ma odpowiedzi.
get Timestamp()
Pobiera sygnaturę czasową przesłania odpowiedzi w formularzu.
W przypadku odpowiedzi na formularz, która została utworzona przez skrypt, ale nie została jeszcze przesłana, 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()}`); }
Powrót
Date
– sygnatura czasowa przesłania odpowiedzi lub null
, jeśli skrypt utworzył tę odpowiedź, ale jeszcze jej nie przesłał.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
submit()
przesyła odpowiedź. Wyrzuca 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
Form
– nowo utworzona odpowiedź zapisana w magazynie odpowiedzi formularza.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
to Prefilled Url()
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);
Powrót
String
– adres URL formularza ze wstępnie wypełnionymi odpowiedziami.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
with Item Grade(gradedResponse)
Dodaje oceny odpowiedzi na pytanie do odpowiedzi w formularzu. Ta metoda dotyczy tylko odpowiedzi na formularz, które zostały już przesłane, i wpływa na zapisane oceny dopiero po ich przesłaniu. Ta metoda aktualizuje tylko oceny odpowiedzi na pytanie. Nie ma wpływu na samą odpowiedź (ponieważ została już przesłana). Jeśli ta metoda zostanie wywołana wiele razy w przypadku tego samego elementu, zachowana zostanie tylko ostatnia ocena. Jeśli ItemResponse nie zawiera ocen, ta metoda usuwa oceny dla danego 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
Nazwa | Typ | Opis |
---|---|---|
graded | Item |
Powrót
Form
– ten Form
, do tworzenia łańcuszków
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
with Item Response(response)
Dodaje podaną odpowiedź na 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 ma wpływu na zapisane odpowiedzi. Jeśli ta metoda zostanie wywołana wiele razy w przypadku tego samego elementu, zachowana zostanie tylko ostatnia 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
Nazwa | Typ | Opis |
---|---|---|
response | Item |
Powrót
Form
– ten Form
do tworzenia łańcuszków.
Autoryzacja
Skrypty korzystające z tej metody wymagają autoryzacji z użyciem co najmniej jednego z tych zakresów:
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms