Konfigurowanie projektu Apps Script

Skonfigurowanie projektu Apps Script w celu bezpośredniego wywoływania interfejsu Google Formularzy API za pomocą wywołania 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ń numer powiązanego projektu Google Cloud, aby był zgodny z projektem włączonym w interfejsie Google Formularzy API.
  3. Edytuj plik manifestu (appsscript.json), aby dodać niezbędne zakresy protokołu OAuth.
  4. Dodaj kod Apps Script, aby pobrać token OAuth i wywołać za jego pomocą wywołanie REST.

Oto krótki opis tych czynności.

Tworzenie i konfigurowanie nowego projektu Apps Script

  1. Korzystając z tego samego identyfikatora Google, za pomocą którego został skonfigurowany projekt GCP, otwórz panel Apps Script i 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 w Google Cloud Platform (GCP) kliknij Zmień projekt i wpisz numer projektu GCP skonfigurowany na potrzeby interfejsu Formularzy API.

Twój projekt Apps Script został skonfigurowany pod kątem dostępu do interfejsu Google Formularzy API. Następnym wymaganym krokiem jest dodanie odpowiednich zakresów OAuth.

Dodaj zakresy OAuth

Aby wygenerować token OAuth o prawidłowym 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 wszelkie błędy składni. Twój projekt powinien teraz mieć możliwość wywoływania interfejsu Google Formularzy API za pomocą wywołania REST.

Dodanie kodu Apps Script do wywoływania interfejsu API

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

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

Do wywołania interfejsu API użyj wywołania UrlFetchApp Apps Script.

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

    Formularze-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 zanotowaną wcześniej wartością.

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

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

Testowanie kodu

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

Po rozpoczęciu procesu w dzienniku wykonywania 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ą referencyjną i poeksperymentuj z wykonywaniem innych wywołań tego interfejsu API.