Konfigurowanie projektu Apps Script

Skonfigurowanie projektu Apps Script w celu wywoływania interfejsu Google Forms API bezpośrednio za pomocą wywołania REST wymaga wykonania kilku czynności. 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 API Formularzy.
  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.

Tworzenie i konfigurowanie nowego projektu Apps Script

  1. Używając tego samego konta Google, którego użyto do skonfigurowania projektu Google Cloud, 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 (Google Cloud) kliknij Zmień projekt i wpisz numer projektu Google Cloud, który został skonfigurowany na potrzeby interfejsu Forms API.

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

Dodawanie zakresów protokołu OAuth

Aby wygenerować w Apps Script token OAuth o odpowiednim zakresie, 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 umożliwiać wywoływanie interfejsu 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 konta 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 eksperymentuj z innymi wywołaniami interfejsu API.