在不通知用户使用Google Apps脚本的情况下共享云端硬盘文档

时间:2014-01-17 15:43:39

标签: javascript google-apps-script google-api google-drive-api google-apps

我正在Apps脚本中创建一个工作流程,其中从模板生成文档并与各个用户共享以供审批。脚本发送一个自定义的电子邮件,通知用户该文档需要他们的批准,但他们还会在该过程的每个阶段收到第二封电子邮件,该文件来自存储文档的驱动程序,用户说“用户与您共享了文档”。有没有办法禁用这些警报?当您从云端硬盘手动共享文档时,会出现一个复选框选项,允许您选择用户是否收到通知。但是,我找不到使用Apps脚本禁用此通知的方法。

我正在使用doc.addEditors(users)来分享文档。

非常感谢

3 个答案:

答案 0 :(得分:14)

另一种选择是使用Drive高级服务(您应该在脚本编辑器的“资源”菜单中启用它)。

使用的代码应为

Drive.Permissions.insert(
   {
     'role': 'writer',
     'type': 'user',
     'value': 'bob@example.com'
   },
   fileId,
   {
     'sendNotificationEmails': 'false'
   });

答案 1 :(得分:9)

如果您使用的是 Google文档 Google SpreadSheets ,则可以使用简单的解决方案。您可以使用 DocumentApp SpreadSheetApp 在不通过电子邮件通知的情况下共享您的文档或SpreadSheets:

DocumentApp

var doc = DocumentApp.openById('124144')
doc.addEditor('example@mail.com').addViewer('example2@mail.com')

SpreadSheetApp

var spreadSheet = SpreadsheetApp.openById('124144')
spreadSheet.addEditor('example@mail.com').addViewer('example2@mail.com')

但是,如果您使用的是非Docs或SpreadSheets的文档,则必须使用 DriveApp 进行共享,然后才会发送电子邮件通知。

答案 2 :(得分:0)

目前无法做到这一点。有关此主题的更多信息,请访问:https://code.google.com/p/google-apps-script-issues/issues/detail?id=2829

上述问题的评论中建议的解决方法是使用DocsList:

  

DocsList,SpreadsheetApp和DocumentApp都有addEditor和addViewer方法,这些方法不会产生通知电子邮件。