Guide de démarrage rapide: créer un module complémentaire dans n'importe quel langage de programmation

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Créer un module complémentaire Google Workspace dans Cloud Functions sans utiliser Apps Script

Objectifs

  • Créer une fonction Cloud.
  • Appelez Google pour appeler le module complémentaire.
  • Créer un déploiement de module complémentaire
  • Installez le module complémentaire.

Conditions préalables

Créer une fonction Cloud

  1. Dans un terminal local, activez Cloud Functions, Cloud Build et l'API 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 l'exemple de code suivant:

    /**
     * Google 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
    
  4. Vérifiez que la fonction est déployée:

    gcloud functions call loadHomePage
    

Appeler Google pour appeler le 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 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
    

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

  1. Obtenez l'URL de la fonction déployée:

    gcloud functions describe loadHomePage
    
  2. Créez le fichier deployment.json avec l'exemple de code suivant. Remplacez URL par l'URL de la fonction déployée à 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": {}
      }
    }
    
  3. 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 située à droite, cherchez une icône représentant une fiole.

  3. Cliquez sur l'icône pour ouvrir le module complémentaire.

Effectuer un nettoyage

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

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

    gcloud projects delete PROJECT_ID
    

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