Tutoriel Avancé : Intégration de Gemini CLI avec Google Workspace

Automatisez vos workflows et décuplez votre productivité en connectant la puissance de l'IA conversationnelle aux outils Google.

Introduction : Le "Pourquoi"

Ce tutoriel s'adresse aux ingénieurs, chefs de projet et cadres souhaitant exploiter Gemini CLI comme un orchestrateur intelligent pour leurs tâches sur Google Workspace. L'objectif est de dépasser la simple conversation avec une IA pour la transformer en un véritable assistant opérationnel.

En combinant le langage naturel de Gemini avec la puissance de Google Apps Script (GAS), nous pouvons automatiser des processus complexes, manipuler des données et générer des documents à la volée. La technologie clé qui rend cette intégration possible et sécurisée est la bibliothèque gas-fakes, qui exécute les scripts GAS localement en traduisant leurs commandes en appels d'API Google directs.

Bénéfices Clés :

Partie 1 : La Configuration Initiale (À faire une seule fois)

Pour permettre à Gemini CLI d'interagir avec vos services Google, nous devons créer une "identité" pour notre application via Google Cloud. C'est cette identité qui demandera votre permission pour accéder à vos données.

Étape 1.1 : Création du Projet Google Cloud

  1. Rendez-vous sur la Google Cloud Console.
  2. Créez un Nouveau Projet. Nommez-le de manière explicite, par exemple Gemini-Workspace-Integration.

Étape 1.2 : Activation des APIs Essentielles

Un projet Google Cloud est une coquille vide. Nous devons y activer les "portes" (APIs) vers les services que nous voulons utiliser.

  1. Dans votre projet, allez dans la section APIs et services > Bibliothèque.
  2. Recherchez et activez les APIs suivantes (indispensables pour la plupart des cas d'usage) :
    • Google Drive API
    • Google Sheets API
    • Google Docs API
    • Google Slides API (optionnel)
    • Gmail API (optionnel, pour les workflows d'emailing)

Étape 1.3 : Configuration de l'Écran de Consentement OAuth

C'est la page que vous verrez lorsque vous autoriserez l'application pour la première fois. Elle vous informe des permissions demandées.

  1. Allez dans APIs et services > Écran de consentement OAuth.
  2. Type d'utilisateur : Externe.
  3. Remplissez les informations de base (nom de l'app, email).
  4. Passez l'étape des "Champs d'application".
  5. Ajoutez votre propre adresse email comme Utilisateur test. C'est crucial pour que vous puissiez autoriser l'application avant qu'elle ne soit officiellement "publiée".

Étape 1.4 : Génération des Identifiants

Enfin, nous allons générer la clé que notre application utilisera pour s'identifier auprès de Google.

  1. Allez dans APIs et services > Identifiants.
  2. Cliquez sur + CRÉER DES IDENTIFIANTS et choisissez ID client OAuth.
  3. Type d'application : Application de bureau.
  4. Après la création, cliquez sur l'icône de téléchargement pour obtenir un fichier JSON.
  5. Renommez ce fichier en credentials.json et placez-le à la racine de votre répertoire de projet (C:\Users\steph\projets\).
Sécurité Maximale : Le fichier credentials.json est une clé secrète. Traitez-le comme un mot de passe. Ne le partagez jamais et ne l'exposez pas sur des dépôts de code publics.

Partie 2 : Cas d'Usage Concrets et Exemples

Une fois la configuration terminée, les possibilités sont infinies. Voici des scénarios concrets inspirés par les solutions de la communauté Google Apps Script.

Cas d'Usage 1 : Reporting Automatisé

Scénario : Chaque fin de semaine, vous devez analyser un Google Sheet contenant les ventes, calculer le total et le nombre de transactions, puis ajouter un résumé à un rapport global dans un Google Doc.

Votre prompt à Gemini CLI :

"Crée un script qui ouvre le Google Sheet 'Ventes Q4', calcule la somme de la colonne 'Montant' et le nombre de lignes, puis ajoute une nouvelle section au Google Doc 'Rapport Hebdomadaire' avec la date, le montant total des ventes et le nombre de transactions."

Exemple de script que Gemini pourrait générer et exécuter :

// Ce script illustre la logique que Gemini peut générer.

function generateWeeklySalesReport() {
  // 1. Accéder aux fichiers par leur nom
  const sheetFile = DriveApp.getFilesByName('Ventes Q4').next();
  const docFile = DriveApp.getFilesByName('Rapport Hebdomadaire').next();
  
  // 2. Lire et traiter les données du Spreadsheet
  const ss = SpreadsheetApp.openById(sheetFile.getId());
  const sheet = ss.getSheetByName('Feuille 1');
  const range = sheet.getRange('B2:B' + sheet.getLastRow()); // Colonne 'Montant'
  const values = range.getValues();
  
  const totalSales = values.reduce((sum, row) => sum + row[0], 0);
  const transactionCount = values.length;
  
  // 3. Ajouter le résumé au Google Doc
  const doc = DocumentApp.openById(docFile.getId());
  const body = doc.getBody();
  
  const date = new Date().toLocaleDateString('fr-FR');
  
  body.appendParagraph(`Rapport du ${date}`)
      .setHeading(DocumentApp.ParagraphHeading.HEADING2);
  body.appendParagraph(`Chiffre d'affaires total : ${totalSales.toFixed(2)} €`);
  body.appendParagraph(`Nombre de transactions : ${transactionCount}`);
  body.appendHorizontalRule();
  
  console.log('Rapport mis à jour avec succès.');
}

Cas d'Usage 2 : Gestion de Fichiers Intelligente

Scénario : Votre dossier "Projets Clients" dans Google Drive devient désordonné. Vous voulez automatiquement créer une arborescence de dossiers pour un nouveau client à partir d'un modèle.

Votre prompt à Gemini CLI :

"Crée un script qui, pour un nouveau nom de client 'Innovatech', crée un dossier principal 'Innovatech' dans mon dossier 'Projets Clients'. À l'intérieur de 'Innovatech', crée les sous-dossiers : '01_Contrats', '02_Facturation', '03_Livrables', '04_Reunions'."

Exemple de script que Gemini pourrait générer et exécuter :

// Ce script illustre la logique que Gemini peut générer.

function createClientFolderStructure(clientName) {
  const parentFolderName = 'Projets Clients';
  const subFolders = ['01_Contrats', '02_Facturation', '03_Livrables', '04_Reunions'];
  
  // 1. Trouver le dossier parent
  const parentFolders = DriveApp.getFoldersByName(parentFolderName);
  if (!parentFolders.hasNext()) {
    throw new Error(`Dossier parent '${parentFolderName}' introuvable.`);
  }
  const parentFolder = parentFolders.next();
  
  // 2. Créer le dossier principal pour le client
  const clientFolder = parentFolder.createFolder(clientName);
  
  // 3. Créer les sous-dossiers
  subFolders.forEach(folderName => {
    clientFolder.createFolder(folderName);
  });
  
  console.log(`Arborescence créée pour le client ${clientName} à l'adresse : ${clientFolder.getUrl()}`);
}

Conclusion et Prochaines Étapes

Vous avez maintenant configuré un environnement de développement extrêmement puissant, capable de traduire vos intentions en actions concrètes au sein de votre espace de travail Google. La véritable limite est votre imagination.

Pour aller plus loin :