개요

Google Forms API는 양식과 퀴즈를 만들고 수정하고, 양식 응답과 퀴즈 성적을 가져오고, 자동 피드백으로 퀴즈 답안 키를 설정하고, 푸시 알림을 수신할 수 있는 RESTful 인터페이스입니다. 이 API의 가장 일반적인 용도에는 다음 작업이 포함됩니다.

  • 양식 또는 퀴즈 만들기
  • 양식 또는 퀴즈 업데이트하기
  • 양식 또는 퀴즈에서 응답 검색
  • 양식 콘텐츠 및 메타데이터 읽기
  • 푸시 알림 설정 및 수신하기

다음은 Forms API에서 사용되는 일반적인 용어 목록입니다.

양식

Drive에서 생성되고 저장된 Google 양식 문서입니다. 각 양식은 Form 리소스로 표시되며 문자, 숫자, 하이픈 또는 밑줄로 구성된 고유한 formId 값을 갖습니다. Google Forms URL에서 양식 ID를 확인할 수 있습니다.

https://docs.google.com/forms/d/FORM_ID/edit

퀴즈

답안을 기준으로 양식 응답을 채점할 수 있는 특정 유형의 Google Forms 문서입니다. 퀴즈는 batchUpdate() 메서드를 사용하여 기존 양식의 isQuiz 설정을 true로 업데이트하는 경우에만 만들 수 있습니다.

평가
질문에 대한 점수, 답안, 의견입니다. isQuiztrue인 경우에 적용됩니다. Grading 리소스로 표시됩니다.
의견
퀴즈의 질문에 응답할 때 최종 사용자에게 제공되는 응답으로, Feedback 리소스로 표시됩니다.
항목

항목 리소스로 표시되는 양식의 단일 요소입니다. Item는 섹션, 질문 그룹, 질문, 텍스트, 이미지 또는 동영상을 포함할 수 있는 반복 요소입니다.

질문

양식의 단일 질문으로, Question 리소스로 표시됩니다.

질문 그룹

모두 동일한 가능한 답변 집합을 공유하는 질문 그룹입니다 (예: 1~5점의 평가 그리드). QuestionGroupItem 리소스로 표시됩니다.

Section

섹션은 양식을 여러 페이지로 나누고 조건부 로직 (예: 사용자가 답변한 방식에 따라 특정 질문만 표시)을 추가하는 방법입니다. 섹션은 PageBreakItem 리소스에 해당합니다.

답변

질문에 대한 최종 사용자의 답변으로, Answer 리소스로 표시됩니다. 성적 정보 (있는 경우), 메타데이터, 답변 내용이 모두 포함됩니다.

응답

최종 사용자가 제출한 양식으로, FormResponse 리소스로 표시됩니다.

시계

양식 스키마 변경사항 (예: 질문 수정) 또는 양식 응답 제출의 변경사항을 추적하고 변경사항이 발생하면 푸시 알림을 전송하는 트리거입니다. Watch 리소스로 표시됩니다.

양식 구조

양식과 퀴즈를 관리할 때는 여러 양식 객체가 여러 가지 방법으로 서로 중첩될 수 있으므로 다양한 필드를 지정하는 방법을 이해하는 것이 복잡할 수 있습니다. 양식의 시각적 표현이 필드에 매핑되는 방식을 확인하려면 UI를 사용하여 애플리케이션에서 생성할 수 있는 양식의 예를 몇 개 만드는 것이 좋습니다. 그런 다음 비교할 수 있도록 forms.get() 메서드를 사용하여 해당 JSON을 검색합니다. 예를 들어 이 퀴즈 예시는 다음 JSON에 해당합니다.

{
  "formId": "FORM_ID",
  "info": {
    "title": "Famous Black Women",
    "description": "Please complete this quiz based off of this week's readings for class.",
    "documentTitle": "API Example Quiz"
  },
  "settings": {
    "quizSettings": {
      "isQuiz": true
    }
  },
  "revisionId": "00000021",
  "responderUri": "https://docs.google.com/forms/d/e/1FAIpQLSd0iBLPh4suZoGW938EU1WIxzObQv_jXto0nT2U8HH2KsI5dg/viewform",
  "items": [
    {
      "itemId": "5d9f9786",
      "imageItem": {
        "image": {
          "contentUri": "DIRECT_URL",
          "properties": {
            "alignment": "LEFT"
          }
        }
      }
    },
    {
      "itemId": "72b30353",
      "title": "Which African American woman authored \"I Know Why the Caged Bird Sings\"?",
      "questionItem": {
        "question": {
          "questionId": "25405d4e",
          "required": true,
          "grading": {
            "pointValue": 2,
            "correctAnswers": {
              "answers": [
                {
                  "value": "Maya Angelou"
                }
              ]
            }
          },
          "choiceQuestion": {
            "type": "RADIO",
            "options": [
              {
                "value": "Maya Angelou"
              },
              {
                "value": "bell hooks"
              },
              {
                "value": "Alice Walker"
              },
              {
                "value": "Roxane Gay"
              }
            ]
          }
        }
      }
    },
    {
      "itemId": "0a4859c8",
      "title": "Who was the first Dominican-American woman elected to state office?",
      "questionItem": {
        "question": {
          "questionId": "37fff47a",
          "grading": {
            "pointValue": 2,
            "correctAnswers": {
              "answers": [
                {
                  "value": "Grace Diaz"
                }
              ]
            }
          },
          "choiceQuestion": {
            "type": "RADIO",
            "options": [
              {
                "value": "Rosa Clemente"
              },
              {
                "value": "Grace Diaz"
              },
              {
                "value": "Juana Matias"
              },
              {
                "value": "Sabrina Matos"
              }
            ]
          }
        }
      }
    }
  ]
}

다음 단계

  • 인증 및 승인 처리를 비롯하여 Google Workspace API로 개발하는 방법을 알아보려면 Workspace 개발자로 시작하기를 참고하세요.
  • 간단한 Forms API 앱을 구성하고 실행하는 방법을 알아보려면 빠른 시작 개요를 참고하세요.