Javascript 使用Google Apps脚本共享驱动器文档而不通知用户
我正在应用程序脚本中创建一个工作流流程,其中从模板生成一个文档,并与多个用户共享以供审批。脚本会发送一封定制的电子邮件,通知用户该文档需要他们的批准,但在流程的每个阶段,他们也会从存储文档的驱动器的用户处收到第二封电子邮件,说“用户已与您共享文档”。有没有办法禁用这些警报?当您从驱动器手动共享文档时,有一个复选框选项允许您选择用户是否收到通知。但是,我无法找到使用应用程序脚本禁用此通知的方法 我正在使用Javascript 使用Google Apps脚本共享驱动器文档而不通知用户,javascript,google-apps-script,google-api,google-drive-api,google-apps,Javascript,Google Apps Script,Google Api,Google Drive Api,Google Apps,我正在应用程序脚本中创建一个工作流流程,其中从模板生成一个文档,并与多个用户共享以供审批。脚本会发送一封定制的电子邮件,通知用户该文档需要他们的批准,但在流程的每个阶段,他们也会从存储文档的驱动器的用户处收到第二封电子邮件,说“用户已与您共享文档”。有没有办法禁用这些警报?当您从驱动器手动共享文档时,有一个复选框选项允许您选择用户是否收到通知。但是,我无法找到使用应用程序脚本禁用此通知的方法 我正在使用doc.addeditor(用户)共享文档 非常感谢目前这是不可能的。有关此主题的更多信息,请
doc.addeditor(用户)
共享文档
非常感谢目前这是不可能的。有关此主题的更多信息,请参见: 上述问题的评论中建议的解决方法是使用DocsList: DocsList、SpreadsheetApp和DocumentApp都有addEditor和addViewer方法,不会产生通知电子邮件
另一个选项是使用驱动器高级服务(应该在脚本编辑器的“资源”菜单中启用该服务) 使用的代码应该是
Drive.Permissions.insert(
{
'role': 'writer',
'type': 'user',
'value': 'bob@example.com'
},
fileId,
{
'sendNotificationEmails': 'false'
});
如果您使用的是谷歌文档或谷歌电子表格,则有一个简单的解决方案。您可以使用DocumentApp或SpreadSheetApp在不发送电子邮件通知的情况下共享您的文档或电子表格: DocumentApp
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')
电子表格应用程序
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进行共享,并发送电子邮件通知。检查:一个极好的解决方案。不幸的是,无法通过
DocumentApp
或SpreadsheetApp
添加评论员。。。仅限DriveApp
。我想,如果不发送电子邮件(当然,驱动器高级服务除外),就无法向驱动器中的内容添加评论员。此解决方案不再有效,通过DocumentApp
或SpreadsheetApp
共享将发送电子邮件。知道fileId
应该是什么吗?如果我尝试DriveApp.getFileById(“fileID”)
可以找到该文件,但是如果我尝试上面的代码,它会说file not found
fileID
是打开文件时作为URL一部分出现的44个字符,但是我不认为Drive.Permissions.insert
函数仍然有效available@alejandro如果启用,则驱动器.Permissions.insert()仍然可用。它不是标准的DriveApp
服务的一部分。@请确保您首先有一个有效的fileId
字符串。如果仍然存在问题,您可以尝试先获取文件var file=DriveApp.getFileById(fileId)
,然后插入一个权限,将代码示例中的fileId
替换为file.getId()
。这非常有效,谢谢。我使用此代码共享驱动器上充满PDF的文件夹。关键字是驱动器;)