Visão geral

A API Google Forms é uma interface RESTful que permite criar e modificar formulários e testes, extrair respostas de formulários e notas de testes, configurar chaves de resposta de teste 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
  • Atualizar um formulário ou teste
  • Recuperar respostas de um formulário ou teste
  • Ler conteúdo e metadados do formulário
  • Configurar e receber notificações push

Veja abaixo uma lista de termos comuns usados na API Forms:

Form

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

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

Teste

Um tipo específico de documento do Formulários Google que permite atribuir nota às respostas do formulário a uma chave de resposta. Só é possível criar um teste usando o método batchUpdate() para atualizar a configuração isQuiz em um formulário existente para true.

Avaliação
É a pontuação, a chave de resposta e o feedback de uma pergunta, aplicada quando isQuiz é true. Representado pelo recurso Grading.
Feedback
Uma resposta fornecida ao usuário final ao responder a uma pergunta em um teste, representada pelo recurso Feedback.
Item

Um único elemento em um formulário, representado pelo recurso Item. Item é um elemento de repetição 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 recurso Question.

Grupo de perguntas

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

Section

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

Resposta

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

Resposta

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

Assista

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

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 entre si de várias maneiras. Para ver como a representação visual de um formulário é mapeada para os campos, recomendamos o uso da IU para criar alguns exemplos de formulários que seu aplicativo pode gerar. Em seguida, recupere o JSON correspondente usando o método forms.get() para comparação. Por exemplo, este exemplo de teste corresponde ao JSON a seguir:

{
  "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"
              }
            ]
          }
        }
      }
    }
  ]
}

Próximas etapas