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



