양식 전체에 대한 응답입니다. FormResponse
는 다음 세 가지 방법으로 사용할 수 있습니다.
응답자가 프로그래매틱 방식으로 제출한 답변 (getItemResponses()
참고)
양식에 대한 응답을 제출하고 (withItemResponse(response)
및 submit()
참고) 제공된
있습니다. FormResponse
는 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()); } }
메서드
메서드 | 반환 유형 | 간략한 설명 |
---|---|---|
getEditResponseUrl() | String | 이미 제출된 응답을 수정하는 데 사용할 수 있는 URL을 생성합니다. |
getGradableItemResponses() | ItemResponse[] | 양식 응답에 포함된 모든 항목 응답을 항목이 표시되는 순서와 동일하게 가져옵니다. 있습니다. |
getGradableResponseForItem(item) | ItemResponse | 지정된 항목의 양식 응답에 포함된 항목 응답을 가져옵니다. |
getId() | String | 양식 응답의 ID를 가져옵니다. |
getItemResponses() | ItemResponse[] | 양식 응답에 포함된 모든 항목 응답을 항목이 표시되는 순서와 동일하게 가져옵니다. 있습니다. |
getRespondentEmail() | String | Form.setCollectEmail(collect) 설정이 사용 설정된 경우 응답을 제출한 사용자의 이메일 주소를 가져옵니다. |
getResponseForItem(item) | ItemResponse | 지정된 항목에 대해 이 양식 응답에 포함된 항목 응답을 가져옵니다. |
getTimestamp() | Date | 양식 응답 제출의 타임스탬프를 가져옵니다. |
submit() | FormResponse | 응답을 제출합니다. |
toPrefilledUrl() | String | 이 양식을 작성해 달라고 요청합니다. |
withItemGrade(gradedResponse) | FormResponse | 지정된 항목 응답의 성적을 양식 응답에 추가합니다. |
withItemResponse(response) | FormResponse | 지정된 항목 응답을 양식 응답에 추가합니다. |
자세한 문서
getEditResponseUrl()
이미 제출된 응답을 수정하는 데 사용할 수 있는 URL을 생성합니다. 만약
Form.setAllowResponseEdits(enabled)
설정이 사용 중지되면 링크가 다음 페이지로 연결됩니다.
양식 응답 수정이 사용 중지되어 있다고 설명합니다. 링크를 방문하는 모든 사용자가
단, Form.setRequireLogin(requireLogin)
설정이 사용 설정된 경우 양식에 액세스할 수 있는 계정이 필요합니다. Form.setCollectEmail(collect)
응답을 수정한 사용자의 이메일 주소가 양식에 기록됩니다.
원래 응답자의 이메일 주소 대신
스크립트가 생성했지만 아직 제출하지 않은 양식 응답의 경우 이 메서드는
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);
리턴
String
- 제출된 대답을 변경하는 URL입니다.
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상으로 승인이 필요합니다.
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getGradableItemResponses()
양식 응답에 포함된 모든 항목 응답을 항목이 표시되는 순서와 동일하게 가져옵니다.
있습니다. 이 메서드는 getItemResponses()
와 비슷하게 작동하지만 채점에 사용할 수 있습니다.
누락된 답이더라도 상응하는 Item
가 있으면 여전히 ItemResponse
을 반환합니다.
채점할 수 있습니다 (예: 점수 산정). 실제 응답이 없더라도 괜찮습니다. 그러나
Item
는 평가할 수 없으므로 이 메서드는 반환된 배열에서 해당 항목을 제외합니다.
// 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()}`); } }
리턴
ItemResponse[]
- 응답자가 응답한 양식 내 모든 질문 항목에 대한 응답의 배열
점수를 받을 수 있습니다.
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상으로 승인이 필요합니다.
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getGradableResponseForItem(item)
지정된 항목의 양식 응답에 포함된 항목 응답을 가져옵니다. 이 방법은 효과가 있습니다.
getResponseForItem(item)
와 유사하지만 누락된 답변을 채점할 수 있도록
해당하는 Item
를 채점할 수 있는 경우 (즉, 점수가 있는 경우) ItemResponse
를 반환합니다.
값)로 표현됩니다. 그러나 Item
를 그라데이션할 수 없다면
이 메서드는 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()}`); }
매개변수
이름 | 유형 | 설명 |
---|---|---|
item | Item |
리턴
ItemResponse
: 주어진 항목에 대한 응답 또는 null
(없는 경우) 및 문항이 채점되지 않은 경우
getId()
양식 응답의 ID를 가져옵니다. 이 메서드는 양식 응답에 연결되지 않은 경우 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 form responses and logs the ID for each form response to the console. for (const formResponse of formResponses) { console.log(`Response ID: ${formResponse.getId()}`); }
리턴
String
: 양식 응답의 ID 또는 양식 응답이 아직 작성되지 않은 경우 null
있습니다.
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상으로 승인이 필요합니다.
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getItemResponses()
양식 응답에 포함된 모든 항목 응답을 항목이 표시되는 순서와 동일하게 가져옵니다.
있습니다. 양식 응답에 지정된 TextItem
에 관한 응답이 포함되지 않은 경우
DateItem
, TimeItem
또는 ParagraphTextItem
, ItemResponse
빈 문자열이 응답으로 표시됩니다. 양식 응답에
응답이 있는 경우 이 메서드는 반환된 배열에서 해당 항목을 제외합니다.
// 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()}'`); } }
리턴
ItemResponse[]
- 응답자가 응답한 양식 내 모든 질문 항목에 대한 응답의 배열
답변이 제공되었습니다.
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상으로 승인이 필요합니다.
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getRespondentEmail()
Form.setCollectEmail(collect)
설정이 사용 설정된 경우 응답을 제출한 사용자의 이메일 주소를 가져옵니다.
스크립트가 생성했지만 아직 제출하지 않은 양식 응답의 경우 이 메서드는
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()}`); }
리턴
String
: 이 응답을 제출한 사용자의 이메일 주소(사용 가능한 경우) 또는 null
(스크립트에서 이 응답을 만들었지만 아직 제출하지 않은 경우)
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상으로 승인이 필요합니다.
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
getResponseForItem(item)
지정된 항목에 대해 이 양식 응답에 포함된 항목 응답을 가져옵니다.
// 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()); }
매개변수
이름 | 유형 | 설명 |
---|---|---|
item | Item |
리턴
ItemResponse
- 주어진 항목의 응답 또는 없는 경우 null
getTimestamp()
양식 응답 제출의 타임스탬프를 가져옵니다.
스크립트가 생성했지만 아직 제출하지 않은 양식 응답의 경우 이 메서드는
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()}`); }
리턴
Date
— 이 응답이 제출된 타임스탬프 또는 null
(스크립트인 경우)
님이 이 응답을 만들었지만 아직 제출하지 않았습니다.
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상으로 승인이 필요합니다.
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
submit()
응답을 제출합니다. 응답이 이미 제출된 경우 스크립트 예외가 발생합니다.
// 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();
리턴
FormResponse
- 새로 생성된 응답이 양식의 응답 저장소에 저장됩니다.
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상으로 승인이 필요합니다.
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
toPrefilledUrl()
이 양식을 작성해 달라고 요청합니다.
// 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);
리턴
String
- 미리 작성된 답변이 있는 양식의 URL입니다.
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상으로 승인이 필요합니다.
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
withItemGrade(gradedResponse)
지정된 항목 응답의 성적을 양식 응답에 추가합니다. 이 메서드는 양식 저장된 성적에 영향을 줍니다. 있습니다. 또한 이 메서드는 상품 응답의 성적만 업데이트합니다. Kubernetes의 해야 합니다 (응답이 이미 제출되었기 때문). 이 메서드가 호출되면 동일한 항목에 대해 여러 번 반복하면 마지막 성적만 유지됩니다. ItemResponse에 성적이 없으면 이 방법을 사용하면 항목의 성적이 삭제됩니다.
// 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);
매개변수
이름 | 유형 | 설명 |
---|---|---|
gradedResponse | ItemResponse |
리턴
FormResponse
: 이 FormResponse
(체이닝용)
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상으로 승인이 필요합니다.
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms
withItemResponse(response)
지정된 항목 응답을 양식 응답에 추가합니다. 이 방법은 양식 응답에만 적용됩니다. 스크립트가 생성되었지만 아직 제출되지 않았습니다. 영향을 미치지 않습니다 만약 메서드가 동일한 항목에 대해 여러 번 호출되면 마지막 항목 응답만 유지됩니다.
// 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();
매개변수
이름 | 유형 | 설명 |
---|---|---|
response | ItemResponse |
리턴
FormResponse
: 이 FormResponse
는 체이닝을 위한 것입니다.
승인
이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상으로 승인이 필요합니다.
-
https://www.googleapis.com/auth/forms.currentonly
-
https://www.googleapis.com/auth/forms