Configurer un projet Apps Script

Configurer un projet Apps Script pour appeler l'API Google Forms directement via un appel REST est simple. En supposant que vous ayez déjà configuré un projet Google Cloud, procédez comme suit:

  1. Créez un projet Apps Script.
  2. Modifiez le numéro du projet Google Cloud associé pour qu'il corresponde au projet que vous avez activé pour l'API Google Forms.
  3. Modifiez le fichier manifeste (appsscript.json) pour ajouter les champs d'application OAuth nécessaires.
  4. Ajouter du code Apps Script pour récupérer un jeton OAuth et effectuer un appel REST à l'aide de ce jeton.

Voici une présentation rapide de ces étapes.

Créer et configurer un projet Apps Script

  1. En utilisant l'ID Google avec lequel vous avez configuré votre projet GCP, accédez au tableau de bord Apps Script, puis cliquez sur Nouveau projet.
  2. Une fois votre projet ouvert, cliquez sur Paramètres du projet.
  3. Cochez la case Afficher le fichier manifeste "appsscript.json" dans l'éditeur.
  4. Dans la section Projet Google Cloud Platform (GCP), cliquez sur Changer de projet, puis saisissez le numéro de projet GCP que vous avez configuré pour l'API Forms.

Votre projet Apps Script est maintenant configuré pour accéder à l'API Google Forms. L'étape suivante consiste à ajouter les champs d'application OAuth appropriés.

Ajouter des champs d'application OAuth

Pour générer un jeton OAuth dont le champ d'application est correctement défini dans Apps Script, vous devez définir les champs d'application requis dans le fichier manifeste du projet.

  1. Dans l'éditeur, ouvrez appsscript.json.
  2. Ajoutez les champs d'application au corps du fichier manifeste.

    {
      ...
    "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. Cliquez sur Enregistrer le projet et corrigez les erreurs de syntaxe si nécessaire. Votre projet doit maintenant pouvoir appeler l'API Google Forms via un appel REST.

Ajouter du code Apps Script pour appeler l'API

Avant d'écrire le code permettant d'appeler un formulaire, vous devez identifier un formulaire qui vous appartient et qui contient des réponses et noter son ID. L'ID du formulaire est indiqué dans l'URL lors de la modification du formulaire:

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

Pour appeler l'API, vous devez utiliser un appel UrlFetchApp Apps Script.

  1. Ouvrez le fichier Code.gs et ajoutez le code suivant:

    form-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. Remplacez YOUR_FORM_ID par la valeur que vous avez notée précédemment.

    Exemple : var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';

  3. Cliquez sur Enregistrer le projet et corrigez les erreurs de syntaxe si nécessaire.

Tester le code

  1. Cliquez sur Exécuter.
  2. Si nécessaire, autorisez le projet en utilisant le même ID Google qu'auparavant.

Une fois l'opération démarrée, une réponse semblable à la suivante doit s'afficher dans le journal d'exécution:

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

Étapes suivantes

Une fois que vous avez appelé l'API avec Apps Script, consultez la documentation de référence et testez d'autres appels à l'API.