Visão geral

A API Google Forms é uma interface RESTful que permite criar e modificar formulários e testes, acessar respostas de formulários e notas de testes, configurar gabaritos de testes com feedback automático e receber notificações push. Os usos mais comuns dessa API incluem as seguintes tarefas:

  • Criar um formulário ou teste
  • Publicar e gerenciar participantes
  • Atualizar um formulário ou teste
  • Recuperar respostas de um formulário ou teste
  • Ler conteúdo e metadados de formulários
  • Configurar e receber notificações push
A seguir, confira uma lista de termos comuns usados na API Forms:
Formulário

Um documento do Formulários Google, criado e armazenado no Drive. Cada formulário é representado por um Form recurso e tem um valor formId exclusivo, contendo letras, números, hifens ou sublinhados. Você pode encontrar o ID do formulário em um URL do Formulários:

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

Teste

Um tipo específico de documento do Formulários Google que permite a classificação das respostas do formulário em relação a um gabarito. Um teste só pode ser criado usando o batchUpdate() método para atualizar a configuração isQuiz em um formulário atual para true.

Classificação
Uma pontuação, gabarito e feedback para uma pergunta, aplicado quando isQuiz é true. Representado pelo Grading recurso.
Feedback
Uma resposta dada ao usuário final ao responder a uma pergunta em um teste, representada pelo Feedback recurso.
Item

Um único elemento em um formulário, representado pelo recurso Item. Item é um elemento repetido que pode conter uma seção, um grupo de perguntas, uma pergunta, um texto, uma imagem ou um vídeo.

Pergunta

Uma única pergunta no formulário, representada pelo Question recurso.

Grupo de perguntas

Um grupo de perguntas que compartilham o mesmo conjunto de respostas possíveis (por exemplo, uma grade de classificações de 1 a 5). Representado pelo QuestionGroupItem recurso.

Section

Uma seção é uma maneira de dividir um formulário em várias páginas e adicionar lógica condicional (como mostrar apenas algumas perguntas com base na resposta do usuário). As seções correspondem ao PageBreakItem recurso.

Resposta

A resposta do usuário final a uma pergunta, representada pelo Answer recurso. Inclui informações de nota (se presentes), metadados e o conteúdo da resposta.

Resposta

O envio de um formulário pelo usuário final, representado pelo FormResponse recurso.

Relógio

Um acionador que rastreia mudanças no esquema do formulário (como edições de perguntas) ou envios de respostas do formulário e envia uma notificação push quando ocorre uma mudança. Representado pelo Watch recurso.

Estrutura do formulário

Ao gerenciar formulários e testes, entender como especificar campos diferentes pode ser complicado, já que muitos dos objetos de formulário podem ser aninhados uns nos outros de várias maneiras. Para saber como a representação visual de um formulário é mapeada para os campos, recomendamos usar a interface para criar alguns exemplos de formulários que seu aplicativo pode gerar. Em seguida, recupere o JSON correspondente usando o forms.get() método para comparar. Por exemplo, este teste de exemplo corresponde ao seguinte JSON:

{
  "formId": "FORM_ID",
  "info": {
    "title": "Famous Black Women",
    "description": "Please complete this quiz based off of this week's readings for class.",
    "documentTitle": "Famous Black Women"
  },
  "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"
              }
            ]
          }
        }
      }
    }
  ],
  "publishSettings" : {
    "isPublished": true,
    "isAcceptingResponses": true
  }
}

Próximas etapas