Importer et gérer des contacts avec l’API People de Google

L’importation et la gestion de contacts avec l’API People de Google permettent d’automatiser des tâches fastidieuses tout en facilitant la gestion des groupes de contacts dans Google Workspace. Dans cet article, je vous explique comment développer un script Google Apps Script pour importer des contacts depuis une feuille de calcul Google Sheets et les associer automatiquement à des groupes spécifiques.

Pourquoi utiliser l’API People pour gérer vos contacts ?

Gérer manuellement vos contacts peut rapidement devenir chronophage, surtout dans un environnement professionnel où les informations doivent constamment être mises à jour. Grâce à l’API People de Google, vous pouvez facilement automatiser l’importation, la mise à jour et l’organisation de vos contacts dans des groupes prédéfinis. Ce script vous permettra de créer ou mettre à jour des contacts à partir d’une feuille Google Sheets et de les associer à des groupes de contacts.

Fonctionnalités du script

Le script que nous allons vous présenter permet de :

  • Créer un contact à partir d’informations stockées dans une feuille Google Sheets.
  • Mettre à jour un contact existant si celui-ci est déjà enregistré.
  • Associer des contacts à des groupes (ou libellés) dans Google Contacts.
  • Créer des groupes si ceux-ci n’existent pas encore.

Comment fonctionne le script ?

L’ensemble du processus se base sur la récupération des données d’une feuille Google Sheets, puis sur l’envoi des informations vers l’API People de Google.

Le script identifie si un contact existe déjà à partir de son adresse email. Si le contact existe, il est mis à jour, sinon un nouveau contact est créé.

Exemple de script :

function importerContactsAvecGroupesPeopleAPI() {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const donnees = feuille.getRange(2, 1, feuille.getLastRow() - 1, feuille.getLastColumn()).getValues();

  donnees.forEach(ligne => {
    const email = ligne[2]; 
    const contactExistant = trouverContactParEmail(email);

    if (contactExistant) {
      mettreAJourContact(contactExistant.resourceName, contactExistant.etag, ligne);
    } else {
      const nouveauContact = creerContact(ligne);
      if (ligne[13]) {
        const libelles = ligne[13].split(',').map(libelle => libelle.trim());
        libelles.forEach(libelle => {
          const groupeId = obtenirOuCreerGroupeDeContact(libelle);
          ajouterContactAuGroupe(nouveauContact.resourceName, groupeId);
        });
      }
    }
  });
}

Ajouter des contacts à des groupes

Pour gérer les groupes, le script vérifie d’abord si un groupe existe. S’il n’existe pas, il le crée, puis associe le contact au groupe.

Exemple :

function ajouterContactAuGroupe(resourceNameContact, resourceNameGroupe) {
  const url = `https://people.googleapis.com/v1/${resourceNameGroupe}/members:modify`;
  const payload = { resourceNamesToAdd: [resourceNameContact] };

  const options = {
    method: 'post',
    contentType: 'application/json',
    headers: { Authorization: `Bearer ${ScriptApp.getOAuthToken()}` },
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  };

  const response = UrlFetchApp.fetch(url, options);
  Logger.log(`Réponse de l'API : ${response.getContentText()}`);
}

Intégration dans Google Sheets

Une interface utilisateur simple est également ajoutée à Google Sheets pour permettre d’exécuter le script directement depuis un menu.

Exemple de menu :

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('Gestion Contacts')
    .addItem('Importer les contacts et les associer aux groupes', 'importerContactsAvecGroupesPeopleAPI')
    .addToUi();
}

Les avantages de ce script

  1. Automatisation complète : Plus besoin de gérer manuellement les contacts.
  2. Gain de temps : Le script gère l’importation et la mise à jour en quelques clics.
  3. Facilité d’utilisation : Un simple menu dans Google Sheets pour gérer vos contacts et groupes.
  4. Évolutivité : Le script peut être étendu pour ajouter d’autres fonctionnalités comme la suppression automatique de contacts.

Ce script est une solution pratique pour les entreprises et les professionnels souhaitant automatiser la gestion de leurs contacts dans Google Workspace. L’API People de Google offre une grande flexibilité et permet de simplifier de nombreuses tâches répétitives.


L’atelier informatique vous accompagne dans vos projets technologiques en vous proposant des tutoriels et des solutions pour optimiser vos tâches quotidiennes.