Apps Script-Projekt einrichten

Es ist ganz einfach, ein Apps Script-Projekt einzurichten, um die Google Formulare API direkt über einen REST-Aufruf aufzurufen. Wenn Sie bereits ein Google Cloud-Projekt konfiguriert haben, gehen Sie so vor:

  1. Erstellen Sie ein neues Apps Script-Projekt.
  2. Ändern Sie die zugehörige Google Cloud-Projektnummer so, dass sie mit dem Projekt übereinstimmt, das Sie für die Google Forms API aktiviert haben.
  3. Fügen Sie der Manifestdatei (appsscript.json) die erforderlichen OAuth-Bereiche hinzu.
  4. Fügen Sie Apps Script-Code hinzu, um ein OAuth-Token abzurufen und mit dem Token einen REST-Aufruf auszuführen.

Im Folgenden finden Sie eine kurze Anleitung zu diesen Schritten.

Neues Apps Script-Projekt erstellen und konfigurieren

  1. Rufen Sie mit der Google-ID, mit der Sie Ihr GCP-Projekt konfiguriert haben, das Apps Script-Dashboard auf und klicken Sie auf Neues Projekt.
  2. Ist das Projekt geöffnet, klicken Sie auf Projekteinstellungen.
  3. Klicken Sie das Kästchen "appsscript.json"-Manifestdatei im Editor anzeigen an.
  4. Klicken Sie im Abschnitt Google Cloud Platform (GCP)-Projekt auf Projekt ändern und geben Sie die GCP-Projektnummer ein, die Sie für die Formulare API konfiguriert haben.

Ihr Apps Script-Projekt ist jetzt für den Zugriff auf die Google Formulare API konfiguriert. Der nächste erforderliche Schritt besteht darin, die richtigen OAuth-Bereiche hinzuzufügen.

OAuth-Bereiche hinzufügen

Um ein OAuth-Token mit ordnungsgemäßem Geltungsbereich in Apps Script zu generieren, müssen Sie die erforderlichen Bereiche in der Manifestdatei des Projekts festlegen.

  1. Öffnen Sie appsscript.json im Editor.
  2. Fügen Sie die Bereiche in den Hauptteil des Manifests ein.

    {
      ...
    "oauthScopes": [
        "https://www.googleapis.com/auth/script.external_request",
        "https://www.googleapis.com/auth/drive",
        "https://www.googleapis.com/auth/drive.readonly",
        "https://www.googleapis.com/auth/forms.body",
        "https://www.googleapis.com/auth/forms.body.readonly",
        "https://www.googleapis.com/auth/forms.responses.readonly"
      ],
     ...
     }
    
  3. Klicken Sie auf Projekt speichern und korrigieren Sie bei Bedarf Syntaxfehler. Ihr Projekt sollte jetzt die Google Forms API über einen REST-Aufruf aufrufen können.

Apps Script-Code zum API-Aufruf hinzufügen

Bevor Sie den Code zum Aufrufen eines Formulars schreiben, müssen Sie ein Formular identifizieren, das Ihnen gehört, das Antworten enthält, und sich die Formular-ID notieren. Die Formular-ID finden Sie in der URL, wenn Sie das Formular bearbeiten:

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

Die API wird über einen Apps Script-UrlFetchApp-Aufruf aufgerufen.

  1. Öffnen Sie Code.gs und fügen Sie den folgenden Code hinzu:

    forms-api/snippets/retrieve_all_responses.gs
     function callFormsAPI() {
      console.log('Calling the Forms API!');
      var formId = '<YOUR_FORM_ID>';
    
      // Get OAuth Token
     var OAuthToken = ScriptApp.getOAuthToken();
     console.log('OAuth token is: ' + OAuthToken);
     var formsAPIUrl = 'https://forms.googleapis.com/v1/forms/' + formId + '/' + 'responses';
     console.log('formsAPIUrl is: ' + formsAPIUrl);
     var options = {
        'headers': {
          Authorization: 'Bearer ' + OAuthToken,
          Accept: 'application/json'
        },
        'method': 'get'
      };  
    var response = UrlFetchApp.fetch(formsAPIUrl, options);
     console.log('Response from forms.responses was: ' + response);
    }
  2. Ersetzen Sie YOUR_FORM_ID durch den Wert, den Sie zuvor notiert haben.

    Beispiel: var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';

  3. Klicken Sie auf Projekt speichern und korrigieren Sie gegebenenfalls Syntaxfehler.

Code testen

  1. Klicken Sie auf Ausführen.
  2. Autorisieren Sie das Projekt nach Bedarf mit derselben Google-ID wie zuvor.

Nach dem Start sollten Sie im Ausführungslog eine Antwort ähnlich der folgenden sehen:

Execution started
Calling the Forms API!
OAuth token is: ya29.a0ARrdaM8IMjtlv…
formsAPIUrl is: https://forms.googleapis.com/v1beta/forms/…/responses
Response from Forms.responses was: {
"responses": [
    {
      "responseId":"...",
      "createTime": "2021-03-25T01:23:58.146Z",
      "lastSubmittedTime": "2021-03-25T01:23:58.146607Z",
      "answers": {
        "1e9b0ead": {
          "questionId": "1e9b0ead",
          "textAnswers": {
            "answers": [
              {
                "value": "Red"
              }
            ]
          }
        },
        "773ed8f3": {
          "questionId": "773ed8f3",
          "textAnswers": {
            "answers": [
              {
                "value": "Tesla"
              }
            ]
          }
        }
      }
    }
  ]
}
Execution completed

Nächste Schritte

Nachdem Sie die API erfolgreich mit Apps Script aufgerufen haben, lesen Sie die Referenzdokumentation und experimentieren Sie mit anderen Aufrufen der API.