我正在应用程序脚本中创建一个工作流程,其中文档是从模板生成并与各种用户共享以供审批的。该脚本会发送一封自定义电子邮件,通知用户该文档需要他们的批准,但他们也会在流程的每个阶段收到第二封电子邮件,来自存储文档的云端硬盘的用户,上面写着"用户已与您共享文档"。有什么方法可以禁用这些警报吗?当您从云端硬盘手动共享文档时,系统会显示一个复选框选项,供您选择用户是否收到通知。但是,我找不到使用应用程序脚本禁用此通知的方法。
我正在使用doc.addEditors(users)
来共享文档。
非常感谢
另一种选择是使用云端硬盘高级服务(您应该在脚本编辑器的"资源"菜单中启用该服务)。
使用的代码应该是
Drive.Permissions.insert(
{
'role': 'writer',
'type': 'user',
'value': 'bob@example.com'
},
fileId,
{
'sendNotificationEmails': 'false'
});
如果您正在使用Google Docs或GoogleSpreadSheets,则有一个简单的解决方案。您可以使用 DocumentApp 或 SpreadSheetApp 共享您的文档或电子表格,而无需电子邮件通知:
文档应用程序
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 方法。