Przegląd

Google Forms API – 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 formularza lub testu
  • Publikowanie i zarządzanie osobami odpowiadającymi
  • Aktualizowanie formularza lub testu
  • Pobieranie odpowiedzi z formularza lub testu
  • Odczytywanie treści i metadanych formularza
  • Konfigurowanie i odbieranie powiadomień push
Poniżej znajdziesz listę najczęściej używanych terminów w interfejsie Forms API:
Formularz

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

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

Test

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

Ocenianie
Liczba punktów, klucz odpowiedzi i opinia na temat pytania, które są stosowane, gdy isQuiz ma wartość true. Reprezentowane przez zasób Grading.
Opinia
Odpowiedź udzielana użytkownikowi końcowemu, gdy odpowiada na pytanie w teście, reprezentowana przez zasób Feedback.
Element

Pojedynczy element formularza, 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). Reprezentowane 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ą do PageBreakItem zasobu.

Odpowiedź

Odpowiedź użytkownika końcowego na pytanie, reprezentowana przez Answer zasób. Obejmuje informacje o ocenie (jeśli są dostępne), metadane i treść odpowiedzi.

Odpowiedź

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

Zegarek

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

Struktura formularza

Zarządzanie formularzami i testami może być skomplikowane, ponieważ wiele obiektów formularza może być zagnieżdżonych w sobie na różne sposoby. Aby zobaczyć, jak wizualna reprezentacja formularza jest powiązana z polami, zalecamy utworzenie w interfejsie kilku przykładowych 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 test odpowiada tym danym 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
  }
}

Dalsze kroki