REST Resource: forms

리소스: 양식

Google Forms 문서 양식은 Drive에서 생성되며, 양식을 삭제하거나 액세스 보호를 변경하는 작업은 Drive API를 통해 이루어집니다.

JSON 표현
{
  "formId": string,
  "info": {
    object (Info)
  },
  "settings": {
    object (FormSettings)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "revisionId": string,
  "responderUri": string,
  "linkedSheetId": string
}
필드
formId

string

출력 전용입니다. 양식 ID입니다.

info

object (Info)

필수입니다. 양식의 제목 및 설명입니다.

settings

object (FormSettings)

양식의 설정입니다. UpdateSettingsRequest로 업데이트해야 합니다. forms.createUpdateFormInfoRequest 중에 무시됩니다.

items[]

object (Item)

필수입니다. 양식의 항목 목록으로, 섹션 헤더, 질문, 삽입된 미디어 등이 포함될 수 있습니다.

revisionId

string

출력 전용입니다. 양식의 버전 ID입니다. 업데이트 요청의 WriteControl에서 변경사항의 기반이 되는 버전을 식별하는 데 사용됩니다.

버전 ID의 형식은 시간이 지남에 따라 변경될 수 있으므로 불투명하게 처리해야 합니다. 반환된 버전 ID는 반환된 후 24시간 동안만 유효하며 여러 사용자와 공유할 수 없습니다. 호출 간에 버전 ID가 변경되지 않으면 양식이 변경되지 않은 것입니다. 반대로 ID가 변경된 경우 (동일한 양식 및 사용자의 경우) 일반적으로 양식이 업데이트되었음을 의미합니다. 하지만 ID 형식 변경과 같은 내부 요인으로 인해 ID가 변경될 수도 있습니다.

responderUri

string

출력 전용입니다. 응답자와 공유할 양식 URI입니다. 그러면 사용자가 답변을 제출할 수는 있지만 질문을 수정할 수는 없는 페이지가 열립니다.

linkedSheetId

string

출력 전용입니다. 이 양식의 응답을 누적하는 연결된 Google 시트의 ID입니다 (해당 시트가 있는 경우).

정보

양식의 일반 정보입니다.

JSON 표현
{
  "title": string,
  "documentTitle": string,
  "description": string
}
필드
title

string

필수입니다. 응답자에게 표시되는 양식의 제목입니다.

documentTitle

string

출력 전용입니다. Drive에 표시되는 문서 제목입니다. Info.title가 비어 있으면 documentTitle이 Google Forms UI에 표시되고 응답자에게 표시될 수 있습니다. documentTitle는 생성 시 설정할 수 있지만 batchUpdate 요청으로 수정할 수는 없습니다. documentTitle를 프로그래매틱 방식으로 업데이트해야 하는 경우 Google Drive API를 사용하세요.

description

string

양식에 대한 설명입니다.

FormSettings

양식의 설정입니다.

JSON 표현
{
  "quizSettings": {
    object (QuizSettings)
  },
  "emailCollectionType": enum (EmailCollectionType)
}
필드
quizSettings

object (QuizSettings)

퀴즈 양식 및 채점과 관련된 설정입니다.

emailCollectionType

enum (EmailCollectionType)

선택사항입니다. 양식에서 응답자의 이메일 주소를 수집할지 여부를 결정하는 설정입니다.

QuizSettings

퀴즈 양식 및 채점과 관련된 설정입니다. UpdateSettingsRequest로 업데이트해야 합니다.

JSON 표현
{
  "isQuiz": boolean
}
필드
isQuiz

boolean

이 양식이 퀴즈인지 여부입니다. 이 값이 true이면 응답은 Grading 질문을 기준으로 채점됩니다. false로 설정하면 모든 질문 Grading가 삭제됩니다.

EmailCollectionType

선택사항입니다. 양식에서 응답자의 이메일 주소를 수집할지 여부와 이메일 주소를 수집하는 방법을 결정하는 설정입니다. 양식에서 이메일 주소를 수집하는 경우 값이 formResponse.respondentEmail 필드에 채워집니다.

열거형
EMAIL_COLLECTION_TYPE_UNSPECIFIED 지정되지 않음. 이 값은 사용되지 않습니다.
DO_NOT_COLLECT 양식에서 이메일 주소를 수집하지 않습니다. 양식 소유자가 Google 계정을 사용하는 경우의 기본값입니다.
VERIFIED 이 양식은 로그인한 사용자의 계정을 기반으로 이메일 주소를 자동으로 수집합니다. 양식 소유자가 Google Workspace 계정을 사용하는 경우의 기본값입니다.
RESPONDER_INPUT 이 양식은 응답자가 양식에서 작성하는 입력란을 사용하여 이메일 주소를 수집합니다.

항목

양식의 단일 항목입니다. kind는 어떤 종류의 항목인지 정의합니다.

JSON 표현
{
  "itemId": string,
  "title": string,
  "description": string,

  // Union field kind can be only one of the following:
  "questionItem": {
    object (QuestionItem)
  },
  "questionGroupItem": {
    object (QuestionGroupItem)
  },
  "pageBreakItem": {
    object (PageBreakItem)
  },
  "textItem": {
    object (TextItem)
  },
  "imageItem": {
    object (ImageItem)
  },
  "videoItem": {
    object (VideoItem)
  }
  // End of list of possible types for union field kind.
}
필드
itemId

string

상품 ID입니다.

생성 시 제공할 수 있지만 이 ID는 양식에서 이미 사용되어서는 안 됩니다. 제공하지 않으면 새 ID가 할당됩니다.

title

string

상품의 제목입니다.

description

string

상품 설명입니다.

통합 필드 kind. 필수입니다. 항목의 종류입니다. kind은 다음 중 하나여야 합니다.
questionItem

object (QuestionItem)

사용자에게 질문합니다.

questionGroupItem

object (QuestionGroupItem)

하나의 주요 프롬프트로 사용자에게 하나 이상의 질문을 합니다.

pageBreakItem

object (PageBreakItem)

제목이 있는 새 페이지를 시작합니다.

textItem

object (TextItem)

페이지에 제목과 설명을 표시합니다.

imageItem

object (ImageItem)

페이지에 이미지를 표시합니다.

videoItem

object (VideoItem)

페이지에 동영상을 표시합니다.

QuestionItem

단일 질문이 포함된 양식 항목입니다.

JSON 표현
{
  "question": {
    object (Question)
  },
  "image": {
    object (Image)
  }
}
필드
question

object (Question)

필수입니다. 표시된 질문입니다.

image

object (Image)

질문 내에 표시되는 이미지입니다.

질문

질문이 있으신가요? 특정 질문 유형은 kind로 식별됩니다.

JSON 표현
{
  "questionId": string,
  "required": boolean,
  "grading": {
    object (Grading)
  },

  // Union field kind can be only one of the following:
  "choiceQuestion": {
    object (ChoiceQuestion)
  },
  "textQuestion": {
    object (TextQuestion)
  },
  "scaleQuestion": {
    object (ScaleQuestion)
  },
  "dateQuestion": {
    object (DateQuestion)
  },
  "timeQuestion": {
    object (TimeQuestion)
  },
  "fileUploadQuestion": {
    object (FileUploadQuestion)
  },
  "rowQuestion": {
    object (RowQuestion)
  },
  "ratingQuestion": {
    object (RatingQuestion)
  }
  // End of list of possible types for union field kind.
}
필드
questionId

string

읽기 전용입니다. 질문 ID입니다.

생성 시 제공할 수 있지만 이 ID는 양식에서 이미 사용되어서는 안 됩니다. 제공하지 않으면 새 ID가 할당됩니다.

required

boolean

응답자가 응답을 제출하려면 이 질문에 답변해야 하는지 여부입니다.

grading

object (Grading)

질문의 채점 설정입니다.

통합 필드 kind. 필수입니다. 응답자에게 제공되는 질문 유형입니다. kind은 다음 중 하나여야 합니다.
choiceQuestion

object (ChoiceQuestion)

응답자는 사전 정의된 옵션 중에서 선택할 수 있습니다.

textQuestion

object (TextQuestion)

응답자는 자유 텍스트 응답을 입력할 수 있습니다.

scaleQuestion

object (ScaleQuestion)

응답자는 범위 내에서 숫자를 선택할 수 있습니다.

dateQuestion

object (DateQuestion)

응답자가 날짜를 입력할 수 있습니다.

timeQuestion

object (TimeQuestion)

응답자가 시간을 입력할 수 있습니다.

fileUploadQuestion

object (FileUploadQuestion)

응답자는 하나 이상의 파일을 업로드할 수 있습니다.

rowQuestion

object (RowQuestion)

QuestionGroupItem의 행입니다.

ratingQuestion

object (RatingQuestion)

응답자는 사전 정의된 아이콘 세트에서 평점을 선택할 수 있습니다.

ChoiceQuestion

라디오/체크박스/드롭다운 질문

JSON 표현
{
  "type": enum (ChoiceType),
  "options": [
    {
      object (Option)
    }
  ],
  "shuffle": boolean
}
필드
type

enum (ChoiceType)

필수입니다. 선택형 질문의 유형입니다.

options[]

object (Option)

필수입니다. 응답자가 선택해야 하는 옵션 목록입니다.

shuffle

boolean

퀴즈의 여러 인스턴스에 대해 옵션을 무작위 순서로 표시해야 하는지 여부입니다. 이는 다른 응답자의 화면을 보고 있을 수 있는 응답자의 부정 행위를 방지하거나 항상 동일한 옵션을 먼저 또는 나중에 배치하여 발생할 수 있는 설문조사의 편향을 해결하는 데 자주 사용됩니다.

ChoiceType

선택 유형입니다.

열거형
CHOICE_TYPE_UNSPECIFIED (기본값) 사용하지 않습니다.
RADIO 라디오 버튼: 모든 선택지가 사용자에게 표시되며 사용자는 그중 하나만 선택할 수 있습니다.
CHECKBOX 체크박스: 모든 선택지가 사용자에게 표시되며, 사용자는 원하는 개수를 선택할 수 있습니다.
DROP_DOWN 드롭다운 메뉴: 선택사항은 사용자에게 필요할 때만 표시되며, 그 외에는 현재 선택사항만 표시됩니다. 옵션은 하나만 선택할 수 있습니다.

옵션

객관식 질문의 옵션입니다.

JSON 표현
{
  "value": string,
  "image": {
    object (Image)
  },
  "isOther": boolean,

  // Union field go_to_section can be only one of the following:
  "goToAction": enum (GoToAction),
  "goToSectionId": string
  // End of list of possible types for union field go_to_section.
}
필드
value

string

필수입니다. 사용자에게 표시되는 선택사항입니다.

image

object (Image)

이미지를 옵션으로 표시합니다.

isOther

boolean

옵션이 '기타'인지 여부입니다. 현재 RADIOCHECKBOX 선택 유형에만 적용되지만 QuestionGroupItem에서는 허용되지 않습니다.

통합 필드 go_to_section. 이 옵션을 선택하면 이동할 섹션입니다. 현재 RADIOSELECT 선택 유형에만 적용되지만 QuestionGroupItem에는 허용되지 않습니다. go_to_section은 다음 중 하나여야 합니다.
goToAction

enum (GoToAction)

섹션 탐색 유형입니다.

goToSectionId

string

이동할 섹션 헤더의 상품 ID입니다.

GoToAction

섹션 탐색을 위한 상수입니다.

열거형
GO_TO_ACTION_UNSPECIFIED (기본값) 사용하지 않습니다.
NEXT_SECTION 다음 섹션으로 이동합니다.
RESTART_FORM 양식의 시작 부분으로 돌아갑니다.
SUBMIT_FORM 즉시 양식을 제출합니다.

이미지

이미지를 나타내는 데이터입니다.

JSON 표현
{
  "contentUri": string,
  "altText": string,
  "properties": {
    object (MediaProperties)
  },

  // Union field image_source can be only one of the following:
  "sourceUri": string
  // End of list of possible types for union field image_source.
}
필드
contentUri

string

출력 전용입니다. 이미지를 다운로드할 수 있는 URI입니다. 이 URI는 한시적으로만 유효합니다.

altText

string

마우스 오버 시 표시되고 스크린 리더에서 읽는 이미지에 대한 설명입니다.

properties

object (MediaProperties)

이미지의 속성입니다.

통합 필드 image_source. 이미지 소스의 종류입니다. 새 이미지를 만들 때 정확히 하나의 이미지 소스 필드를 설정해야 합니다. image_source은 다음 중 하나여야 합니다.
sourceUri

string

입력 전용입니다. 소스 URI는 이미지를 삽입하는 데 사용되는 URI입니다. 가져올 때 소스 URI는 비어 있을 수 있습니다.

MediaProperties

미디어의 속성입니다.

JSON 표현
{
  "alignment": enum (Alignment),
  "width": integer
}
필드
alignment

enum (Alignment)

미디어의 위치입니다.

width

integer

미디어의 너비(픽셀)입니다. 미디어가 표시되면 이 값과 표시된 양식의 너비 중 더 작은 값으로 크기가 조정됩니다. 미디어의 원래 가로세로 비율이 유지됩니다. 미디어가 양식에 추가될 때 너비를 지정하지 않으면 미디어 소스의 너비로 설정됩니다. 너비는 0~740 사이여야 합니다(양 끝값 포함). 너비를 0 또는 지정되지 않음으로 설정하는 것은 미디어 소스를 업데이트할 때만 허용됩니다.

정렬

페이지의 정렬

열거형
ALIGNMENT_UNSPECIFIED (기본값) 사용하지 않습니다.
LEFT 왼쪽 정렬
RIGHT 오른쪽 맞춤
CENTER 중앙

TextQuestion

텍스트 기반 질문입니다.

JSON 표현
{
  "paragraph": boolean
}
필드
paragraph

boolean

질문이 서술형 질문인지 여부입니다. 그렇지 않은 경우 짧은 텍스트 질문입니다.

ScaleQuestion

규모에 관한 질문 사용자는 다양한 숫자 값을 선택할 수 있습니다.

JSON 표현
{
  "low": integer,
  "high": integer,
  "lowLabel": string,
  "highLabel": string
}
필드
low

integer

필수입니다. 척도의 최솟값입니다.

high

integer

필수입니다. 척도의 가능한 최고 값입니다.

lowLabel

string

눈금의 최저점을 설명하는 라벨입니다.

highLabel

string

눈금의 최고점을 설명하는 라벨입니다.

DateQuestion

날짜 질문 날짜 질문은 기본적으로 월 + 일로 설정됩니다.

JSON 표현
{
  "includeTime": boolean,
  "includeYear": boolean
}
필드
includeTime

boolean

시간 정보를 질문에 포함할지 여부입니다.

includeYear

boolean

질문에 연도를 포함할지 여부입니다.

TimeQuestion

시간 관련 질문

JSON 표현
{
  "duration": boolean
}
필드
duration

boolean

true: 경과 시간에 관한 질문인 경우 그렇지 않으면 시간에 관한 것입니다.

FileUploadQuestion

파일 업로드 질문 현재 API는 파일 업로드 질문 생성을 지원하지 않습니다.

JSON 표현
{
  "folderId": string,
  "types": [
    enum (FileType)
  ],
  "maxFiles": integer,
  "maxFileSize": string
}
필드
folderId

string

필수입니다. 업로드된 파일이 저장되는 Drive 폴더의 ID입니다.

types[]

enum (FileType)

이 질문에서 허용되는 파일 형식입니다.

maxFiles

integer

단일 응답에서 이 질문에 대해 업로드할 수 있는 최대 파일 수입니다.

maxFileSize

string (int64 format)

이 질문에 업로드된 단일 파일에 허용되는 최대 바이트 수입니다.

FileType

파일 업로드 질문에 업로드할 수 있는 파일 형식입니다.

열거형
FILE_TYPE_UNSPECIFIED (기본값) 사용하지 않습니다.
ANY 유형에 제한이 없습니다.
DOCUMENT Google Docs 문서
PRESENTATION Google Slides 프레젠테이션
SPREADSHEET Google Sheets 스프레드시트
DRAWING 그림
PDF PDF
IMAGE 이미지입니다.
VIDEO 동영상 1개
AUDIO 오디오 파일

RowQuestion

질문 그룹의 일부인 질문의 구성입니다.

JSON 표현
{
  "title": string
}
필드
title

string

필수입니다. QuestionGroupItem의 단일 행 제목입니다.

RatingQuestion

평가 관련 질문 사용자는 다양한 아이콘 중에서 선택할 수 있습니다.

JSON 표현
{
  "ratingScaleLevel": integer,
  "iconType": enum (RatingIconType)
}
필드
ratingScaleLevel

integer

필수입니다. 평가 질문의 평가 척도 수준입니다.

iconType

enum (RatingIconType)

필수입니다. 평점에 사용할 아이콘 유형입니다.

RatingIconType

평점에 사용할 아이콘 유형입니다.

열거형
RATING_ICON_TYPE_UNSPECIFIED (기본값) 사용하지 않습니다.
STAR 별표 아이콘
HEART 하트 아이콘
THUMB_UP 싫어요 아이콘

점수 매기기

단일 질문 채점

JSON 표현
{
  "pointValue": integer,
  "correctAnswers": {
    object (CorrectAnswers)
  },
  "whenRight": {
    object (Feedback)
  },
  "whenWrong": {
    object (Feedback)
  },
  "generalFeedback": {
    object (Feedback)
  }
}
필드
pointValue

integer

필수입니다. 응답자가 정답에 대해 자동으로 받을 수 있는 최대 점수입니다. 음수가 아니어야 합니다.

correctAnswers

object (CorrectAnswers)

필수입니다. 질문의 답안입니다. 이 필드를 기준으로 답변이 자동으로 채점됩니다.

whenRight

object (Feedback)

정답에 표시되는 피드백입니다. 이 피드백은 정답이 제공된 객관식 질문에 대해서만 설정할 수 있습니다.

whenWrong

object (Feedback)

오답에 대해 표시되는 피드백입니다. 이 피드백은 정답이 제공된 객관식 질문에 대해서만 설정할 수 있습니다.

generalFeedback

object (Feedback)

모든 답변에 표시되는 의견입니다. 이는 퀴즈 소유자가 응답자가 답변을 공식적으로 채점하기 전에 질문에 올바르게 답변했는지 빠르게 파악할 수 있도록 하기 위해 단답형 질문에 주로 사용됩니다. 자동 채점 객관식 질문에는 일반 의견을 설정할 수 없습니다.

CorrectAnswers

질문의 답안입니다.

JSON 표현
{
  "answers": [
    {
      object (CorrectAnswer)
    }
  ]
}
필드
answers[]

object (CorrectAnswer)

정답 목록입니다. 이러한 답변을 기반으로 퀴즈 응답의 점수가 자동으로 부여될 수 있습니다. 값이 하나인 질문의 경우 응답이 이 목록의 값과 일치하면 정답으로 표시됩니다. 즉, 정답이 여러 개 있을 수 있습니다. 답변에 여러 개의 값이 있는 (CHECKBOX) 질문의 경우 이 목록의 값이 정확하게 포함된 경우 답변이 올바르게 표시됩니다.

CorrectAnswer

질문에 대한 단일 정답입니다. 값이 여러 개인 (CHECKBOX) 질문의 경우 단일 정답 옵션을 나타내기 위해 여러 개의 CorrectAnswer가 필요할 수 있습니다.

JSON 표현
{
  "value": string
}
필드
value

string

필수입니다. 정답 값입니다. 다양한 값 유형의 형식에 관한 자세한 내용은 TextAnswer.value 문서를 참고하세요.

QuestionGroupItem

여러 질문을 그룹화하여 구성된 질문을 정의합니다.

JSON 표현
{
  "questions": [
    {
      object (Question)
    }
  ],
  "image": {
    object (Image)
  },

  // Union field kind can be only one of the following:
  "grid": {
    object (Grid)
  }
  // End of list of possible types for union field kind.
}
필드
questions[]

object (Question)

필수입니다. 이 질문 그룹에 속하는 질문 목록입니다. 질문은 하나의 그룹에만 속할 수 있습니다. 그룹의 kind는 허용되는 질문 유형에 영향을 줄 수 있습니다.

image

object (Image)

특정 질문 위의 질문 그룹 내에 표시되는 이미지입니다.

통합 필드 kind. 필수입니다. 허용되는 질문 유형과 표시 방법을 결정하는 질문 그룹 유형입니다. kind은 다음 중 하나여야 합니다.
grid

object (Grid)

질문 그룹은 동일한 옵션을 공유하는 객관식 질문 행이 있는 그리드입니다. grid이 설정되면 그룹의 모든 질문이 row 유형이어야 합니다.

그리드

각 행이 별도의 질문을 구성하는 선택지 (라디오 버튼 또는 체크박스) 그리드입니다. 각 행에는 열로 표시되는 동일한 선택사항이 있습니다.

JSON 표현
{
  "columns": {
    object (ChoiceQuestion)
  },
  "shuffleQuestions": boolean
}
필드
columns

object (ChoiceQuestion)

필수입니다. 그리드의 각 질문에서 공유되는 선택지입니다. 즉, 열의 값입니다. CHECK_BOXRADIO 선택사항만 허용됩니다.

shuffleQuestions

boolean

true인 경우 질문이 무작위로 정렬됩니다. 즉, 응답자마다 행이 다른 순서로 표시됩니다.

PageBreakItem

이 유형에는 필드가 없습니다.

페이지 나누기 이 항목의 제목과 설명이 새 페이지 상단에 표시됩니다.

TextItem

이 유형에는 필드가 없습니다.

텍스트 항목

ImageItem

이미지가 포함된 항목입니다.

JSON 표현
{
  "image": {
    object (Image)
  }
}
필드
image

object (Image)

필수입니다. 상품에 표시되는 이미지입니다.

VideoItem

동영상이 포함된 항목입니다.

JSON 표현
{
  "video": {
    object (Video)
  },
  "caption": string
}
필드
video

object (Video)

필수입니다. 상품에 표시되는 동영상입니다.

caption

string

동영상 아래에 표시되는 텍스트입니다.

동영상

동영상을 나타내는 데이터입니다.

JSON 표현
{
  "youtubeUri": string,
  "properties": {
    object (MediaProperties)
  }
}
필드
youtubeUri

string

필수입니다. YouTube URI입니다.

properties

object (MediaProperties)

동영상의 속성입니다.

메서드

batchUpdate

일괄 업데이트를 사용하여 양식을 변경합니다.

create

요청에 제공된 양식 메시지에 지정된 제목을 사용하여 새 양식을 만듭니다.

get

양식을 가져옵니다.