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

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

Objectifs

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

Prérequis

Configurer votre environnement

Ouvrir 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 le projet.

Configurer l'écran de consentement OAuth

Vous devez configurer un écran de consentement pour les modules complémentaires Google Workspace. Configurer l'écran d'autorisation OAuth du module complémentaire définit s'affiche pour les utilisateurs.

  1. Dans la console Google Cloud, accédez au menu . > API et Services > Écran de consentement OAuth.

    Accéder à l'écran de consentement OAuth

  2. Pour Type d'utilisateur, sélectionnez Interne, puis cliquez sur Créer.
  3. Remplissez le formulaire d'inscription de l'application, puis cliquez sur Enregistrer et continuer.
  4. Pour l'instant, vous pouvez ignorer l'ajout de champs d'application et cliquer sur Enregistrer et continuer. Par la suite, lorsque vous créerez une application à utiliser en dehors de votre d'une organisation Google Workspace, vous devez remplacer le Type d'utilisateur par Externe, puis : ajouter les niveaux d'autorisation requis par votre application.

  5. Consultez le récapitulatif d'enregistrement de votre application. Pour apporter des modifications, cliquez sur Modifier. Si l'application l'inscription vous semble correcte, cliquez sur Retour au tableau de bord.

Créer et déployer une fonction Cloud

  1. Dans un terminal local, activez Cloud Functions, Cloud Build et API Google Workspace Add-ons:

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

    /**
     * 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 du . 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 associé au module complémentaire:

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

    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 dans la section httpsTrigger:

    gcloud functions describe loadHomePage
    
  4. Créez le fichier deployment.json avec l'exemple de code suivant. Remplacer URL par l'URL de la fonction déployée à partir du à 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 dans la barre d'outils de droite, recherchez une icône en forme de bécher.

  3. Cliquez sur l'icône pour ouvrir le module complémentaire. Si vous y êtes invité, autoriser 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 date de création:

  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 vous soient facturées, supprimez pour le projet Cloud:

    gcloud projects delete PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID du projet Cloud que vous avez utilisés dans le guide de démarrage rapide. Vous trouverez l'ID du projet Cloud dans la console Google Cloud Page "Tableau de bord"

Étapes suivantes

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