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



我正在应用程序脚本中创建一个工作流程,其中文档是从模板生成并与各种用户共享以供审批的。该脚本会发送一封自定义电子邮件,通知用户该文档需要他们的批准,但他们也会在流程的每个阶段收到第二封电子邮件,来自存储文档的云端硬盘的用户,上面写着"用户已与您共享文档"。有什么方法可以禁用这些警报吗?当您从云端硬盘手动共享文档时,系统会显示一个复选框选项,供您选择用户是否收到通知。但是,我找不到使用应用程序脚本禁用此通知的方法。

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

非常感谢

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

使用的代码应该是

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

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

文档应用程序

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

电子表格应用程序

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

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

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

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

DocsList、SpreadsheetApp 和 DocumentApp 具有不会导致通知电子邮件的 addEditor 和 addViewer 方法。

相关内容

  • 没有找到相关文章

最新更新