Configurer un projet Apps Script

Il est facile de configurer un projet Apps Script pour appeler directement l'API Google Forms via un appel REST. 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 de 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 niveaux d'accès OAuth nécessaires.
  4. Ajoutez du code Apps Script pour récupérer un jeton OAuth et effectuer un appel REST à l'aide du jeton.

Voici un bref aperçu de ces étapes.

Créer et configurer un projet Apps Script

  1. En utilisant le même compte 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 du 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 bons champs d'application OAuth.

Ajouter des habilitations OAuth

Pour générer un jeton OAuth correctement limité dans Apps Script, vous devez définir les autorisations requises dans le fichier manifeste du projet.

  1. Dans l'éditeur, ouvrez appsscript.json.
  2. Ajoutez les niveaux d'accès 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 éventuelles erreurs de syntaxe. Votre projet devrait 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 pour appeler un formulaire, vous devez identifier un formulaire dont vous êtes propriétaire et qui contient des réponses, puis noter son ID. L'ID du formulaire se trouve dans l'URL lorsque vous le modifiez :

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

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

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

    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. 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 éventuelles erreurs de syntaxe.

Tester le code

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

Une fois qu'il a démarré, une réponse semblable à celle-ci devrait 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 réussi à appeler l'API avec Apps Script, consultez la documentation de référence et essayez d'effectuer d'autres appels à l'API.