Je crée un flux de travail dans Appmaker pour Team Drive dans lequel j'ai 3 dossiers sous Team Drive:
ÊTRE APPROUVÉ
APPROUVÉ
REJETÉ
J'envoie un document du dossier TO BE APPROVED pour approbation, si l'utilisateur l'approuve, ce document doit être déplacé vers le dossier APPROVED. Même logique pour REJETÉ.
Ma question est maintenant de savoir comment déplacer un document entre des dossiers de Drive d'équipe. DriveApp.getFolderById(folderId).addFile()
ne fonctionne pas car je ne peux pas avoir plus d'un parent dans Team Drive. DriveApp.getFolderById(folderId).createFile()
fonctionne mais il crée un tout nouveau fichier avec un nouvel identifiant qui ne remplit pas mon objectif de workflow d'approbation car il s'agit d'un tout nouveau fichier.
Existe-t-il un moyen de déplacer un fichier ou de copier / remplacer des opérations qui ne changeront pas l'ID de mon fichier? J'ai également essayé des API REST mais je n'en ai trouvé aucune.
D'accord, on dirait que j'ai trouvé une réponse, via l'API REST, je peux mettre à jour les parents du fichier. J'ai passé cet appel et ça marche.
Voici l'exemple.
var apiUrl = "https://www.googleapis.com/drive/v3/files/fileId?addParents=newFolderId&removeParents=oldFolderId&supportsTeamDrives=true";
var token = ScriptApp.getOAuthToken();
var header = {"Authorization":"Bearer " + token};
var options = {
"method":"PATCH",
"headers": header
};
var res = UrlFetchApp.fetch(apiUrl, options);
MISE À JOUR En utilisant l'API Advance Services, nous pouvons réaliser la même chose, voici la réponse que j'ai reçue d' Aliaksei Ivaneichyk
function moveFileToFolder(fileId, newFolderId) {
var file = Drive.Files.get(fileId, {supportsTeamDrives: true});
Drive.Files.patch(file, fileId, {
removeParents: file.parents.map(function(f) { return f.id; }),
addParents: [newFolderId],
supportsTeamDrives: true
});
}
Ici, vous devez activer les services avancés du SDK Drive si vous utilisez Appscript. Dans le cas d'Appmaker, ajoutez Drive SDK en tant que service dans l'option Paramètres.
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots