Konfigurowanie projektu Apps Script

Skonfigurowanie projektu Apps Script w celu wywołania interfejsu API Formularzy Google bezpośrednio przez wywołanie REST jest proste. Zakładając, że 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 na taki, który został włączony w przypadku interfejsu Google Forms API.
  3. Zmodyfikuj plik manifestu (appsscript.json), aby dodać niezbędne zakresy OAuth.
  4. Dodaj kod Apps Script, aby pobrać token OAuth i wykonać wywołanie REST za pomocą tego tokena.

Oto krótkie omówienie tych czynności.

Tworzenie i konfigurowanie nowego projektu Apps Script

  1. Za pomocą tego samego identyfikatora Google, którego użyto do skonfigurowania projektu GCP, otwórz panel sterowania 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 skonfigurowany dla interfejsu Forms API.

Twój 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 uprawnień OAuth.

Dodawanie zakresów protokołu OAuth

Aby wygenerować token OAuth o odpowiednim zakresie w Apps Script, musisz ustawić wymagane zakresy w pliku manifestu projektu.

  1. W edytorze otwórz appsscript.json.
  2. Dodaj zakresy do treści pliku 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 wywoływać interfejs API Formularzy Google za pomocą wywołania REST.

Dodawanie kodu Apps Script do wywoływania interfejsu API

Zanim napiszesz kod wywołujący formularz, musisz zidentyfikować należący do Ciebie formularz z odpowiedziami i zanotować jego identyfikator. Identyfikator formularza znajdziesz w adresie URL podczas jego edytowania:

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

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

  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!');
      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. 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.

Po rozpoczęciu powinna się wyświetlić odpowiedź w logu wykonania 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 wywołaniu interfejsu API za pomocą Apps Script zapoznaj się z dokumentacją referencyjną i wypróbuj inne wywołania interfejsu API.