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

Stu*_*son 15 javascript google-api google-apps google-apps-script google-drive-api

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

我正在doc.addEditors(users)用来分享这份文件.

非常感谢

Rod*_*ong 15

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

使用的代码应该是

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

  • @alejandro 如果您启用[高级驱动器服务](https://developers.google.com/apps-script/advanced/drive),`Drive.Permissions.insert()` 仍然可用。它不是标准“DriveApp”服务的一部分。 (2认同)

mae*_*aeq 10

如果您使用的是Google文档Google SpreadSheets,则可以使用简单的解决方案.您可以使用DocumentAppSpreadSheetApp共享您的文档或SpreadSheets,而无需通过电子邮件通知:

DocumentApp

var doc = DocumentApp.openById('124144')
doc.addEditor('example@mail.com').addViewer('example2@mail.com')
Run Code Online (Sandbox Code Playgroud)

SpreadSheetApp

var spreadSheet = SpreadsheetApp.openById('124144')
spreadSheet.addEditor('example@mail.com').addViewer('example2@mail.com')
Run Code Online (Sandbox Code Playgroud)

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