Google Drive avec DriveApp
Introduction
Jusqu’ici, ce livre s’est concentré principalement sur l’automatisation de Google Sheets avec Apps Script. À présent, il est temps d’élargir le champ d’action et de découvrir comment Apps Script peut interagir avec d’autres produits de la suite Google.
Nous allons commencer cette partie avec Google Drive, qui joue un rôle central : c’est ici que sont stockés tous les fichiers créés ou manipulés par les scripts.
Découverte et premières manipulations
Le service DriveApp permet de gérer l’intégralité de son Drive directement depuis Apps Script : parcourir des dossiers, créer des fichiers, modifier leurs propriétés ou encore gérer les partages. C’est l’équivalent de SpreadsheetApp, mais pour Drive.
DriveApp est un service intégré facile à utiliser mais présentant quelques limites, notamment pour accéder aux dossiers partagés. Pour cela, il est nécessaire d’utiliser le service avancé Drive.

1. Les classes principales du service DriveApp
Le service DriveApp repose sur plusieurs classes fondamentales, qui travaillent ensemble :
-
DriveApp : le point d’entrée, qui permet d’accéder aux fichiers et dossiers du Drive.
-
File : représente un fichier (document, feuille de calcul, image, PDF…).
-
Folder : représente un dossier qui contient des fichiers ou d’autres sous-dossiers.
-
FileIterator et FolderIterator : des itérateurs qui facilitent la navigation dans une grande quantité de fichiers ou dossiers.
-
User : représente un utilisateur ayant accès à un fichier ou un dossier.
-
Access et Permission : deux énumérations qui définissent les niveaux d’accès (par exemple tout le monde, domaine, privé) et les droits associés (lecture, commentaire, édition).
Ces classes forment la base de toutes les opérations possibles avec DriveApp.
Voyons un exemple simple. Nous allons créer un script pour créer une copie de notre générateur de factures et le partager avec un collègue.

Comme pour Sheets, le point d’entrée est toujours la classe parente du service, ici DriveApp. À la différence de Google Sheets, il n’existe pas de projet Apps Script directement « rattaché » à un fichier Drive. L’éditeur Apps Script n’est donc pas accessible depuis l’interface de Google Drive.
Pour manipuler un fichier ou un dossier, il faut d’abord le récupérer à l’aide des méthodes prévues par le service :
-
getFileById(id) : récupère un fichier à partir de son ID.
-
getFileByIdAndResourceKey(id...
Manipuler fichiers et dossiers
1. Déplacer et supprimer un fichier ou un dossier
a. Déplacer un fichier ou un dossier
Au-delà de la création ou de la copie, il est fréquent de devoir réorganiser son Drive ou nettoyer des fichiers devenus obsolètes. Apps Script propose des méthodes simples pour déplacer ou supprimer des éléments.
function moveFileExample() {
const fileId = "1AbCdEfGhIjKlMnOpQrStUvWxYz";
const file = DriveApp.getFileById(fileId);
const targetFolder = DriveApp.createFolder("Dossier de destination");
file.moveTo(targetFolder);
Logger.log(`File moved to: ${targetFolder.getName()}`);
}
Ici, le fichier est déplacé dans un nouveau dossier créé automatiquement. La même méthode peut être utilisée sur un objet Folder pour déplacer un dossier dans un autre.
b. Supprimer un fichier ou un dossier
La suppression se fait en réalité en envoyant l’élément à la corbeille, via setTrashed(true).
function trashFileExample() {
const fileId = "1AbCdEfGhIjKlMnOpQrStUvWxYz";
const file = DriveApp.getFileById(fileId); ...Gérer les accès et cas pratiques
1. Comprendre les notions d’Access et de Permission
Lorsqu’un fichier ou un dossier est créé dans Drive, il est par défaut privé, accessible uniquement à son propriétaire. Pour le partager avec d’autres utilisateurs ou avec un public plus large, il faut comprendre deux notions essentielles dans Apps Script : Access et Permission.
Access définit qui peut accéder à un fichier ou dossier.
-
PRIVATE : seuls les utilisateurs explicitement ajoutés peuvent y accéder.
-
DOMAIN : tout membre du domaine (par exemple, une entreprise avec Google Workspace) peut le trouver et l’ouvrir.
-
DOMAIN_WITH_LINK : tout membre du domaine disposant du lien peut y accéder.
-
ANYONE : le fichier est accessible à tous sur Internet.
-
ANYONE_WITH_LINK : toute personne possédant le lien peut y accéder, même sans être ajoutée individuellement.
Permission définit ce que ces utilisateurs peuvent faire sur le fichier ou dossier.
-
VIEW : lecture seule.
-
COMMENT : lecture + ajout de commentaires (sur Docs, Sheets, Slides).
-
EDIT : modification complète du fichier.
-
OWNER : contrôle total, y compris le droit de supprimer ou de transférer la propriété.
-
Dans les Drive partagés, d’autres rôles existent comme ORGANIZER ou FILE_ORGANIZER pour gérer la structure sans nécessairement modifier le contenu.
function logFileSharing() {
const fileId = "1XK7fCnzjrOFSdsMX0PwjeyKps1VvkvII6tQGhYBpKAA";
const file = DriveApp.getFileById(fileId);
Logger.log("Access : " + file.getSharingAccess());
Logger.log("Permission : " + file.getSharingPermission());
}
Dans cet exemple, getSharingAccess() retourne la classe d’utilisateurs autorisés (par exemple, ANYONE_WITH_LINK) et getSharingPermission() indique leur niveau de droits (par exemple, VIEW).

En résumé, Access répond à la question « Qui peut voir ce fichier ? », tandis que Permission précise « Que peut-il faire une fois qu’il y accède ? »....