Class FormResponse

FormResponse

양식 전체에 대한 응답입니다. FormResponse는 다음 세 가지 방법으로 사용할 수 있습니다. 응답자가 프로그래매틱 방식으로 제출한 답변 (getItemResponses() 참고) 양식에 대한 응답을 제출하고 (withItemResponse(response)submit() 참고) 제공된 있습니다. FormResponseForm에서 만들거나 액세스할 수 있습니다.

// 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()StringForm.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()}`);
}

매개변수

이름유형설명
itemItem

리턴

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

매개변수

이름유형설명
itemItem

리턴

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

매개변수

이름유형설명
gradedResponseItemResponse

리턴

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

매개변수

이름유형설명
responseItemResponse

리턴

FormResponse: 이 FormResponse는 체이닝을 위한 것입니다.

승인

이 메서드를 사용하는 스크립트에는 다음 범위 중 하나 이상으로 승인이 필요합니다.

  • https://www.googleapis.com/auth/forms.currentonly
  • https://www.googleapis.com/auth/forms