REST Resource: forms

리소스: Form

Google Forms 문서 양식은 드라이브에서 생성되며 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

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

description

string

양식에 대한 설명입니다.

FormSettings

양식의 설정입니다.

JSON 표현
{
  "quizSettings": {
    object (QuizSettings)
  }
}
필드
quizSettings

object (QuizSettings)

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

QuizSettings

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

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

boolean

이 양식이 퀴즈인지 여부입니다. 참인 경우 질문 Grading에 따라 응답이 채점됩니다. false로 설정하면 모든 질문 Grading가 삭제됩니다.

항목

양식의 단일 항목입니다. 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

질문 1개가 포함된 양식 항목입니다.

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)
  }
  // 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의 행입니다.

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입니다. 제한된 시간 동안만 유효합니다.

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 동영상
AUDIO 오디오 파일입니다.

RowQuestion

질문 그룹에 속한 질문의 구성입니다.

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

string

필수 항목입니다. QuestionGroupItem에 있는 단일 행의 제목입니다.

점수 매기기

하나의 질문에 채점하기

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

질문에 대한 정답 1개입니다. 다중 값 (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

양식을 가져옵니다.