Konfigurowanie projektu Apps Script

Skonfigurowanie projektu Apps Script do bezpośredniego wywoływania interfejsu Google Forms API za pomocą wywołania REST jest proste. Jeśli masz już skonfigurowany projekt Google Cloud, wykonaj te czynności:

  1. Utwórz nowy projekt Apps Script.
  2. Zmień powiązany numer projektu Google Cloud, aby pasował do projektu, w którym włączono interfejs Google Forms API.
  3. Edytuj plik manifestu (appsscript.json), aby dodać niezbędne zakresy OAuth.
  4. Dodaj kod Apps Script, aby pobrać token OAuth i wykonać wywołanie REST przy użyciu tego tokena.

Poniżej znajdziesz krótkie omówienie tych kroków.

Tworzenie i konfigurowanie nowego projektu Apps Script

  1. Używając tego samego identyfikatora Google, za pomocą którego skonfigurowano projekt GCP, otwórz panel Apps Script, a następnie kliknij Nowy projekt.
  2. Po otwarciu projektu kliknij Ustawienia projektu.
  3. Zaznacz pole wyboru Wyświetlaj plik manifestu „appsscript.json” w edytorze.
  4. W sekcji Projekt Google Cloud Platform (GCP) kliknij Zmień projekt i wpisz numer projektu GCP skonfigurowanego dla interfejsu Forms API.

Projekt Apps Script jest teraz skonfigurowany pod kątem dostępu do interfejsu Google Forms API. Następnym wymaganym krokiem jest dodanie odpowiednich zakresów OAuth.

Dodawanie zakresów protokołu OAuth

Aby wygenerować w Apps Script token OAuth z odpowiednimi zakresami, musisz ustawić wymagane zakresy w pliku manifestu projektu.

  1. W edytorze otwórz appsscript.json.
  2. Dodaj zakresy do treści manifestu.

    {
      ...
    "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. Kliknij Zapisz projekt i w razie potrzeby popraw błędy składniowe. Twój projekt powinien teraz umożliwiać wywoływanie interfejsu Google Forms API za pomocą wywołania REST.

Dodawanie kodu Apps Script do wywoływania interfejsu API

Zanim napiszesz kod do wywoływania formularza, musisz znaleźć formularz, którego jesteś właścicielem i który zawiera odpowiedzi, a następnie zapisać jego identyfikator. Identyfikator formularza znajdziesz w adresie URL podczas edytowania formularza:

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

Aby wywołać interfejs API, użyjesz wywołania UrlFetchApp Apps Script.

  1. Otwórz plik Code.gs i dodaj ten kod:

    forms-api/snippets/retrieve_all_responses.gs
     function callFormsAPI() {
      console.log('Calling the Forms API!');
      const formId = '<YOUR_FORM_ID>';
    
      // Get OAuth Token
     const OAuthToken = ScriptApp.getOAuthToken();
     console.log('OAuth token is: ' + OAuthToken);
     const formsAPIUrl = 'https://forms.googleapis.com/v1/forms/' + formId + '/' + 'responses';
     console.log('formsAPIUrl is: ' + formsAPIUrl);
     const options = {
        'headers': {
          Authorization: 'Bearer ' + OAuthToken,
          Accept: 'application/json'
        },
        'method': 'get'
      };  
    const response = UrlFetchApp.fetch(formsAPIUrl, options);
     console.log('Response from forms.responses was: ' + response);
    }
  2. Zastąp YOUR_FORM_ID wartością zapisaną wcześniej.

    Przykład: var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';

  3. Kliknij  Zapisz projekt i w razie potrzeby popraw błędy składniowe.

Testowanie kodu

  1. Kliknij  Uruchom.
  2. W razie potrzeby autoryzuj projekt, używając tego samego identyfikatora Google co wcześniej.

Po rozpoczęciu w dzienniku wykonania powinna pojawić się odpowiedź podobna do tej:

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

Dalsze kroki

Po pomyślnym wywołaniu interfejsu API za pomocą Apps Script zapoznaj się z dokumentacją i wypróbuj inne wywołania interfejsu API.