Przegląd

Google Forms API to interfejs w formacie REST, który umożliwia tworzenie i modyfikowanie formularzy oraz testów, pobieranie odpowiedzi na pytania i ocen z testów, konfigurowanie kluczy odpowiedzi z automatycznym podsumowaniem oraz otrzymywanie powiadomień push. Najczęstsze zastosowania tego interfejsu API obejmują te zadania:

  • Tworzenie formularzy i testów
  • Publikowanie i zarządzanie osobami odpowiadającymi
  • Aktualizowanie formularza lub testu
  • Pobieranie odpowiedzi z formularza lub testu
  • Odczytywanie treści formularza i metadanych
  • Konfigurowanie i otrzymywanie powiadomień push
Oto lista najczęstszych terminów używanych w interfejsie Forms API:
Formularz

Dokument Formularzy Google utworzony i przechowywany na Dysku. Każdy formularz jest reprezentowany przez zasób Form i ma niepowtarzalną wartość formId, która zawiera litery, cyfry, łączniki lub podkreślenia. Identyfikator formularza znajdziesz w adresie URL Formularzy Google:

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

Test

Specjalny typ dokumentu w Formularzach Google, który umożliwia ocenianie odpowiedzi na formularz na podstawie klucza odpowiedzi. Test można utworzyć tylko za pomocą metody batchUpdate() do zaktualizowania ustawienia isQuiz w istniejącym formularzu na true.

Ocenianie
Liczba punktów, klucz odpowiedzi i informacje zwrotne dotyczące pytania, stosowane, gdy isQuiz ma wartość true. Reprezentowany przez zasób Grading.
Prześlij opinię
Odpowiedź udzielona użytkownikowi końcowemu w odpowiedzi na pytanie w quizie, reprezentowana przez zasób Feedback.
Produkt

Pojedynczy element w formularzu reprezentowany przez zasób Item. Item to powtarzający się element, który może zawierać sekcję, grupę pytań, pytanie, tekst, obraz lub film.

Pytanie

Pojedyncze pytanie w formularzu, reprezentowane przez zasób Question.

Grupa pytań

Grupa pytań, które mają ten sam zestaw możliwych odpowiedzi (np. siatka ocen od 1 do 5). Reprezentowany przez zasób QuestionGroupItem.

Sekcja

Sekcja to sposób na podzielenie formularza na kilka stron i dodanie logiki warunkowej (np. wyświetlanie tylko niektórych pytań w zależności od odpowiedzi użytkownika). Sekcje odpowiadają zasobowiPageBreakItem.

Odpowiedź

Odpowiedź użytkownika na pytanie, reprezentowana przez zasób Answer. Zawiera informacje o ocenie (jeśli jest dostępna), metadane i treść odpowiedzi.

Odpowiedź

Przesłanie formularza przez użytkownika, reprezentowane przez zasób FormResponse.

Oglądaj

Wywoływacz, który śledzi zmiany w schemacie formularza (np. edycje pytań) lub przesłane odpowiedzi i wysyła powiadomienie push, gdy nastąpi zmiana. Reprezentowany przez zasób Watch.

Struktura formularza

Zarządzanie formularzami i quizami może być skomplikowane, ponieważ wiele obiektów formularza może być zagnieżdżonych w sobie na różne sposoby. Aby sprawdzić, jak wizualna reprezentacja formularza jest powiązana z polami, zalecamy użycie interfejsu do utworzenia kilku przykładów formularzy, które może generować Twoja aplikacja. Następnie pobierz odpowiedni kod JSON za pomocą metody forms.get(), aby móc go porównać. Na przykład ten przykładowy quiz odpowiada temu kodowi 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"
              }
            ]
          }
        }
      }
    }
  ],
  "publishSettings" : {
    "isPublished": true,
    "isAcceptingResponses": true
  }
}

Dalsze kroki