使用 Google Apps 脚本共享云端硬盘文档而不通知用户

问题描述 投票:0回答:4

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

我正在使用

doc.addEditors(users)
来共享文档。

非常感谢

javascript google-apps-script google-api google-drive-api google-apps
4个回答
22
投票

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

使用的代码应该是

Drive.Permissions.insert(
   {
     'role': 'writer',
     'type': 'user',
     'value': '[email protected]'
   },
   fileId,
   {
     'sendNotificationEmails': 'false'
   });

13
投票

如果您使用 Google DocsGoogle SpreadSheets,有一个简单的解决方案。您可以使用 DocumentAppSpreadSheetApp 共享您的文档或电子表格,无需电子邮件通知:

文档应用程序

var doc = DocumentApp.openById('124144')
doc.addEditor('[email protected]').addViewer('[email protected]')

电子表格应用程序

var spreadSheet = SpreadsheetApp.openById('124144')
spreadSheet.addEditor('[email protected]').addViewer('[email protected]')

但是,如果您使用的文档不是文档或电子表格,则必须使用 DriveApp 进行共享,并且将发送电子邮件通知。


1
投票

目前这是不可能的。有关此主题的更多信息,请访问:https://code.google.com/p/google-apps-script-issues/issues/detail?id=2829

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

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


0
投票

只是想指出Rodrigo Chiong 的答案在 2024 年仍然是正确的,并且按预期工作。

但是,必须使用 Apps Scripts 的 Drive API 服务 v2

选择 v3 时,您注意到一些变化并认为它会起作用,但是,在进行细微调整后,它永远不会起作用并不断发送电子邮件通知。

所以,选择 v2,你就安全了。

© www.soinside.com 2019 - 2024. All rights reserved.