Google apps script 通过高级驱动器服务添加编辑器(),无需通知电子邮件

Google apps script 通过高级驱动器服务添加编辑器(),无需通知电子邮件,google-apps-script,google-api,google-drive-api,Google Apps Script,Google Api,Google Drive Api,我的代码处理用户提交的谷歌表单数据并将其合并到谷歌文档中,与通过谷歌表单功能确定的用户共享该文件,并通过电子邮件向这些用户发送新提交的通知 用户组以单个值开始(单元格中的列表--user1@email.com, user2@email.com,然后将拆分(“,”为一个数组,用于加法器() 使用DriveApp方法时,我需要为这些用户设置编辑权限,而不发送与该操作相关联的电子邮件通知。据我所知,这需要的是,我已经为脚本准备好了 在没有通知的情况下添加这些权限的语法和确切代码是什么 下面是我的代码示

我的代码处理用户提交的谷歌表单数据并将其合并到谷歌文档中,与通过谷歌表单功能确定的用户共享该文件,并通过电子邮件向这些用户发送新提交的通知

用户组以单个值开始(单元格中的列表--
user1@email.com, user2@email.com,然后将
拆分(“,”
为一个数组,用于
加法器()

使用DriveApp方法时,我需要为这些用户设置编辑权限,而不发送与该操作相关联的电子邮件通知。据我所知,这需要的是,我已经为脚本准备好了

在没有通知的情况下添加这些权限的语法和确切代码是什么

下面是我的代码示例--


这里有一个实用程序函数,用于以静默方式授予用户对Google驱动器文件的写入权限

/**
*将给定用户的写入权限添加到给定文档。
*
*使用必须启用的高级驱动器服务。
*
*发件人:http://stackoverflow.com/a/37289790/1677912
*
*@param{string}docId要添加权限的文档ID。
*@param{string}userEmail要授予编辑权限的用户的电子邮件地址。
*/
函数addEditorSilent(docId、userEmail){
var permissionResource={
角色:'作者',
键入:“用户”,
值:userEmail
};
变量optionalArgs={
sendNotificationEmails:false
};
Drive.Permissions.insert(permissionResource、docId、optionalArgs);
}
现在,不是:

var docCopy=docToUse.makeCopy(docName,folderDestination);
var docId=docCopy.getId();
var docToSend=DriveApp.getFileById(docId);
docToSend.addEditors(emailEditors);
使用:

var docCopy=docToUse.makeCopy(docName,folderDestination);
var docId=docCopy.getId();

对于(var i=0;i此代码除了分配权限之外还能做什么?在测试运行期间,创建了两个Google文档副本。有什么建议吗?我的测试是在我自己的代码中完成的,显然没有您的可运行版本,这在问题中是不完整的。但是,请查找对
makeCopy()的多个调用
。谢谢,如果继续发生,我也会做一些
console.log()
测试。将电子邮件组添加到权限列表是否会添加该组的所有成员?
console.log()
是客户端的;您的代码是服务器端的,因此这对您没有帮助。(
Logger.log()
)我认为组在访问文件时检查成员身份,而不是授予权限时。这样,从组中删除用户会自动删除他们对与组共享的文件资源的权限。啊,是的,我的意思是
Logger.log
,谢谢。我会对组做更多的研究。我有个人需要请求访问,即使该组已获得许可。
function mergeApplication() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Merge Data");
  var range = sheet.getActiveRange();
  var formSheet = ss.getSheetByName("Form Responses");
  var lastRow = formSheet.getLastRow();
  var lastColumn = sheet.getMaxColumns();
  function checkAndComplete() {
    var urlColumn = lastColumn;
    var checkColumn = (urlColumn - 1);
    var checkRange = sheet.getRange(2, checkColumn, (lastRow - 1), 1);
    var check = checkRange.getBackgrounds();
    var red = "#ff0404";
    var yellow = "#ffec0a";
    var green = "#3bec3b";
    for (var i = 0; i < check.length; i++) {
      if (check[i] == green) {
        continue;
      } else {
        var statusCell = sheet.getRange((i+2), checkColumn, 1, 1);
        var urlCell = sheet.getRange((i+2), urlColumn, 1, 1);
        var dataRow = sheet.getRange((i+2), 1, 1, (lastColumn - 2));
        var emailTag = sheet.getRange((i+2), (checkColumn - 2)).getValue();
        var emailEditors = emailTag.split(", ");
var docCopy = docToUse.makeCopy(docName, folderDestination);
var docId = docCopy.getId();
var docToSend = DriveApp.getFileById(docId);
docToSend.addEditors(emailEditors);