2017-09-21 3 views
0

Eh bien, je transfère une propriété de plusieurs fichiers et je voudrais omettre les e-mails de notification, j'ai trouvé quelques modèles ici dans la bibliothèque, mais je ne peux pas le faire sans mon code, si quelqu'un peut me aider je serai reconnaissantchanger le propriétaire et envoyer un e-mail

function folderTransfer() 
 
    { 
 
    var pas = DriveApp.getFolderById("ID"); 
 
    var arquivos = pas.getFiles(); 
 
    var me = 'email'; /* tirar este e-mail e deixar que seja qualquer prop.*/ 
 
    var novoProp = 'email'; 
 
    
 
    var pastas = pas.getFolders(); 
 
    while (pastas.hasNext()) 
 
    { 
 
     var pasta = pastas.next(); 
 
     var pastaID = pasta.getId(); 
 
     fileTransfer(pastaID, me, novoProp); 
 
     pasta.setOwner(novoProp); 
 
     pasta.removeEditor(me); 
 
    } 
 
    //Transferir pasta pai para novoProp 
 
    pas.setSharing(DriveApp.Access.PRIVATE, DriveApp.Permission.VIEW); 
 
    pas.setOwner('email'); 
 
    pas.removeEditor('email'); 
 
    
 
function fileTransfer(pastaID, prop, novoProp) 
 
    { 
 
    var pasta = DriveApp.getFolderById('id'); 
 
    var arquivos = pasta.getFiles(); 
 
    
 
    while (arquivos.hasNext()) 
 
    { 
 
     var arquivo = arquivos.next(); 
 
     arquivo.setSharing(DriveApp.Access.PRIVATE, DriveApp.Permission.VIEW); 
 
     arquivo.setOwner('email'); 
 
     arquivo.removeEditor('email'); 
 
     
 
     } 
 
    } 
 
}

+0

Dupliquer de https://stackoverflow.com/questions/21189936/share-a-drive-document-without-notifying-user-with-google-apps-script – Brian

+0

Malheureusement je ne sais pas ce que je fais mal , mais cet exemple ne fonctionne pas –

Répondre

0

vous ouvrez les fichiers avec DriveApp, qui oblige l'e-mail de notification (selon this related question). Si vous connaissez le type de fichier (doc, feuille, etc.), vous devez l'ouvrir avec l'application appropriée (SpreadsheetApp, DocumentApp, etc.) pour éviter d'envoyer une notification de partage. Vous devez vérifier le type MIME à partager via l'application appropriée.

Voici un code non testé qui pourrait se rapprocher:

while (arquivos.hasNext()) 
    { 
     var arquivo = arquivos.next(); 
     var type = arquivo.getMimeType(); 
     if(type == "application/vnd.google-apps.document") { 
     DocumentApp.openById(arquivo.getId()).addEditor('email'); 
     } else if(type == "application/vnd.google-apps.spreadsheet") { 
     SpreadsheetApp.openById(arquivo.getId()).addEditor('email'); 
     } //etc... 
    } 

Notez que vous ne pouvez définir le propriétaire par DriveApp, ce qui signifie que vous pouvez pas retirer la notification par courrier électronique. C'est ce que vous pouvez obtenir de plus près grâce à Apps Script.

More in GAS MIME types.

+0

Merci, mais ce code fonctionne en partie. –