Configurare un progetto Apps Script

Configurare un progetto Apps Script per chiamare l'API Moduli Google direttamente tramite una chiamata REST è semplice. Supponendo che tu abbia già configurato un progetto Google Cloud, svolgi i seguenti passaggi:

  1. Crea un nuovo progetto Apps Script.
  2. Modifica il numero del progetto Google Cloud associato in modo che corrisponda al progetto attivato per l'API Google Forms.
  3. Modifica il file manifest (appsscript.json) per aggiungere gli ambiti OAuth necessari.
  4. Aggiungi il codice di Apps Script per recuperare un token OAuth ed eseguire una chiamata REST utilizzando il token.

Ecco una breve procedura dettagliata di questi passaggi.

Creare e configurare un nuovo progetto Apps Script

  1. Utilizzando lo stesso ID Google con cui hai configurato il progetto Google Cloud, vai alla dashboard di Apps Script e fai clic su Nuovo progetto.
  2. Una volta aperto il progetto, fai clic su Impostazioni progetto.
  3. Seleziona la casella di controllo Mostra il file manifest "appsscript.json" nell'editor.
  4. Nella sezione Progetto Google Cloud (GCP), fai clic su Cambia progetto e inserisci il numero del progetto Google Cloud che hai configurato per l'API Forms.

Il progetto Apps Script è ora configurato per accedere all'API Google Forms. Il passaggio obbligatorio successivo consiste nell'aggiungere gli ambiti OAuth appropriati.

Aggiungere ambiti OAuth

Per generare un token OAuth con ambito corretto in Apps Script, devi impostare gli ambiti richiesti nel file manifest del progetto.

  1. Nell'editor, apri appsscript.json.
  2. Aggiungi gli ambiti al corpo del manifest.

    {
      ...
    "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. Fai clic su Salva progetto e correggi eventuali errori di sintassi, se necessario. Ora il tuo progetto dovrebbe essere in grado di chiamare l'API Moduli Google tramite una chiamata REST.

Aggiungi il codice di Apps Script per chiamare l'API

Prima di scrivere il codice per chiamare un modulo, devi identificare un modulo di tua proprietà con risposte e prendere nota del relativo ID. L'ID modulo si trova nell'URL quando modifichi il modulo:

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

Per chiamare l'API, utilizzerai una chiamata UrlFetchApp di Apps Script.

  1. Apri Code.gs e aggiungi il seguente codice:

    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. Sostituisci YOUR_FORM_ID con il valore che hai annotato in precedenza.

    Esempio: var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';

  3. Fai clic su Salva progetto e correggi eventuali errori di sintassi, se necessario.

Testa il codice

  1. Fai clic su Esegui.
  2. Autorizza il progetto in base alle esigenze utilizzando lo stesso ID Google di prima.

Una volta avviato, nel log di esecuzione dovresti visualizzare una risposta simile alla seguente:

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

Passaggi successivi

Dopo aver chiamato correttamente l'API con Apps Script, consulta la documentazione di riferimento e prova a effettuare altre chiamate all'API.