Créer un module complémentaire Google Workspace avec Node.js

Créez des modules complémentaires Google Workspace dans Cloud Functions à l'aide de l'environnement d'exécution Node.js.

Objectifs

  • configurer votre environnement ;
  • Créez et déployez une fonction Cloud.
  • Créez et déployez le module complémentaire.
  • Installez le module complémentaire.

Prérequis

Configurer votre environnement

Ouvrez votre projet Cloud dans la console Google Cloud.

  1. Dans la console Google Cloud, accédez à la page Sélectionner un projet.

    Sélectionner un projet Cloud

  2. Sélectionnez le projet Google Cloud que vous souhaitez utiliser. Vous pouvez également cliquer sur Créer un projet et suivre les instructions à l'écran. Si vous créez un projet Google Cloud, vous devrez peut-être activer la facturation pour ce projet.

Configurer l'écran d'autorisation OAuth

Les modules complémentaires Google Workspace nécessitent une configuration de l'écran de consentement. La configuration de l'écran de consentement OAuth de votre module complémentaire définit ce que Google affiche aux utilisateurs.

  1. Dans la console Google Cloud, accédez à Menu  > > Branding.

    Accéder à "Branding"

  2. Si vous avez déjà configuré , vous pouvez configurer les paramètres suivants de l'écran d'autorisation OAuth dans Branding (Marquage), Audience (Audience) et Data Access (Accès aux données). Si le message Pas encore configuré s'affiche, cliquez sur Commencer:
    1. Sous Informations sur l'application, dans Nom de l'application, saisissez un nom pour l'application.
    2. Dans Adresse e-mail d'assistance utilisateur, choisissez une adresse e-mail d'assistance à laquelle les utilisateurs peuvent vous contacter s'ils ont des questions sur leur consentement.
    3. Cliquez sur Suivant.
    4. Sous Audience, sélectionnez Interne.
    5. Cliquez sur Suivant.
    6. Sous Coordonnées, saisissez une adresse e-mail à laquelle vous pourrez être informé de toute modification apportée à votre projet.
    7. Cliquez sur Suivant.
    8. Sous Terminer, consultez le Règlement sur les données utilisateur dans les services d'API Google et, si vous acceptez, sélectionnez J'accepte le Règlement sur les données utilisateur dans les services d'API Google.
    9. Cliquez sur Continuer.
    10. Cliquez sur Créer.
  3. Pour l'instant, vous pouvez ignorer l'ajout d'autorisations. À l'avenir, lorsque vous créerez une application à utiliser en dehors de votre organisation Google Workspace, vous devrez définir le type d'utilisateur sur Externe. Ajoutez ensuite les champs d'application d'autorisation dont votre application a besoin. Pour en savoir plus, consultez le guide complet Configurer le consentement OAuth.

Créer et déployer une fonction Cloud

  1. Dans un terminal local, activez Cloud Functions, Cloud Build et l'API des modules complémentaires Google Workspace:

    gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
    
  2. Dans un répertoire vide, créez le fichier function.js avec l'exemple de code suivant:

    /**
     * Cloud Function that loads the homepage for a
     * Google Workspace add-on.
     *
     * @param {Object} req Request sent from Google
     * @param {Object} res Response to send back
     */
    exports.loadHomePage = function addonsHomePage (req, res) {
      res.send(createAction());
    };
    
    /** Creates a card with two widgets. */
    function createAction() {
      return {
        "action": {
          "navigations": [
            {
              "pushCard": {
                "header": {
                  "title": "Cats!"
                },
                "sections": [
                  {
                    "widgets": [
                      {
                        "textParagraph": {
                          "text": "Your random cat:"
                        }
                      },
                      {
                        "image": {
                          "imageUrl": "https://cataas.com/cat"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  3. Déployez la fonction :

    gcloud functions deploy loadHomePage --runtime nodejs12 --trigger-http
    

    Si vous y êtes invité, indiquez que vous n'autorisez pas les appels non authentifiés de la fonction. Le déploiement de la fonction peut prendre quelques minutes.

Créer un déploiement de module complémentaire

  1. Recherchez l'adresse e-mail du compte de service du module complémentaire:

    gcloud workspace-add-ons get-authorization
    
  2. Attribuez le rôle cloudfunctions.invoker au compte de service:

    gcloud functions add-iam-policy-binding loadHomePage \
        --role roles/cloudfunctions.invoker \
        --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. Obtenez l'URL de la fonction déployée. Pour obtenir l'URL, exécutez la commande suivante et recherchez le champ url sous la section httpsTrigger:

    gcloud functions describe loadHomePage
    
  4. Créez le fichier deployment.json avec l'exemple de code suivant. Remplacez URL par l'URL de la fonction déployée de l'étape précédente.

    {
      "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"],
      "addOns": {
        "common": {
          "name": "My HTTP Add-on",
          "logoUrl": "https://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png",
          "homepageTrigger": {
            "runFunction": "URL"
          }
        },
        "gmail": {},
        "drive": {},
        "calendar": {},
        "docs": {},
        "sheets": {},
        "slides": {}
      }
    }
    
  5. Créez le déploiement :

    gcloud workspace-add-ons deployments create quickstart \
        --deployment-file=deployment.json
    

Installer le module complémentaire

  1. Installez le déploiement en mode développement:

    gcloud workspace-add-ons deployments install quickstart
    
  2. Ouvrez ou actualisez Gmail pour afficher le module complémentaire. Dans la barre d'outils de droite, recherchez l'icône d'un bécher.

  3. Cliquez sur l'icône pour ouvrir le module complémentaire. Si vous y êtes invité, autorisez le module complémentaire.

Facultatif : Effectuer un nettoyage

Pour éviter que des frais ne soient facturés sur votre compte, supprimez les ressources que vous avez créées:

  1. Désinstallez le module complémentaire de votre compte Google:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. Pour éviter que les ressources utilisées dans ce guide de démarrage rapide ne soient facturées, supprimez le projet Cloud:

    gcloud projects delete PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID du projet Cloud que vous avez utilisé pour le tutoriel de démarrage. Vous trouverez l'ID du projet Cloud dans la console Google Cloud, sur la page Tableau de bord.

Étapes suivantes

Pour ajouter d'autres fonctionnalités à votre module complémentaire Google Workspace, consultez les guides suivants: