Débuter avec Google Dev: crée un service account pour automatiser tes opérations
Lire automatiquement un google sheets dans un dossier google drive
Mise en situation
Tu veux automatiser des fichiers Google Sheets ou organiser des sauvegardes sur Google Drive avec Python ou un autre langage ? Alors tu vas avoir besoin d’un Service Account. Mais si tu ne sais même pas ce que c’est, pas de panique: cet article t’explique tout depuis zéro.
C’est quoi un Service Account ?
Un Service Account est un compte spécial créé pour une application ou un script, pas pour un humain. Il peut accéder à des services Google (comme Google Sheets ou Drive) de manière automatique et sécurisée, avec les droits que tu lui donnes.
Tu peux l’imaginer comme un robot à qui tu donnes une carte d’identité et une clé pour bosser à ta place dans l’environnement Google.
Prérequis
Une adresse Gmail
10 minutes de ton temps
Étape 1 : Créer un projet Google Cloud
Va sur https://console.cloud.google.com (accepte les conditions d’utilisation en cas de première visite avant de continuer.)
Clique sur le menu de sélection de projet1 en haut à gauche.
Clique sur “Nouveau projet”.
Donne-lui un nom (ex : automation-project) et clique sur “Créer”.
Une fois créé, sélectionne ton projet dans la liste.
Étape 2 : Créer un Service Account
Dans le menu de gauche, clique sur “IAM et administration” > “Comptes de service”.
Clique sur “Créer un compte de service”2.
Donne-lui un nom (ex : script-automator) et clique sur “Créer et continuer”.
Laisse les options de rôle vides ou choisis “Éditeur” si nécessaire, puis clique sur “Terminer”.
Étape 3 : Générer la clé du Service Account (fichier JSON)
Dans la liste des comptes de service, clique sur les 3 points à droite de celui que tu viens de créer.
Choisis “Gérer les clés”.
Clique sur “Ajouter une clé” > “Créer une clé”.
Sélectionne JSON et clique sur “Créer” ou “OK”.
Un fichier .json va être téléchargé : garde-le bien ! Tu l’utiliseras dans ton script.
⚠️ Ne partage jamais ce fichier, il donne un accès complet à ton compte.
Étape 4 : Activer les API Google Sheets & Drive
Dans le menu de gauche, clique sur “API et services3” > “Bibliothèque”.
Recherche “Google Sheets API”, clique dessus, puis clique sur “Activer”.
Refais la même chose avec “Google Drive API”.
Étape 5 : Donner accès à un dossier Drive au Service Account
Ouvre ton fichier JSON, cherche la ligne "client_email" : elle contient une adresse email comme mon-compte@mon-projet.iam.gserviceaccount.com.
Va sur Google Drive, crée un dossier (ou utilise un existant).
Clique droit dessus > “Partager”.
Ajoute l’email du Service Account avec le rôle “Éditeur”.
Maintenant, ton robot (Service Account) peut lire, écrire et modifier dans ce dossier.
Étape 6 : Exemple d’utilisation en Python
Voici comment utiliser ton Service Account pour accéder à un fichier Google Sheet4 :
import gspread
from google.oauth2 import service_account
scopes = [
'https://www.googleapis.com/auth/spreadsheets',
'https://www.googleapis.com/auth/drive'
]
sa_credentials = service_account.Credentials.from_service_account_file(chemin/vers/ta_cle.json')
creds = sa_credentials.with_scopes(scopes)
gw_client = gspread.authorize(credentials = creds)
workbook = gw_client.open("Tuto - Python x Google Sheets")
sheet1 = workbook.sheet1
print(sheet.get_all_records())
NB: Si ton dossier Drive contient plusieurs fichiers ayant le même nom, il est préférable d'ouvrir le fichier voulu avec gspread5 en utilisant directement son lien ou son ID.
sheet_by_link = gw_client.open_by_url("https://docs.google.com/spreadsheets/d/15vnGxZzLHR1LwulS-bfIg82wOwanjWm-jr9OC40BiM0").sheet1
sheet_by_key = gw_client.open_by_key("15vnGxZzLHR1LwulS-bfIg82wOwanjWm-jr9OC40BiM0").worksheet("new_sheet")
⚠️ DISCLAIMER ⚠️
Ton fichier Google Sheet doit aussi être partagé avec le Service Account