首页 > 解决方案 > 如何解决 folder.addViewer(); 的“异常:服务错误:驱动器”?

问题描述

我是使用 Google Script 的新手,正在尝试修复预先存在的脚本。我的组织使用 Google 应用程序脚本向文件夹添加和删除批量查看者和编辑者。每次我尝试运行脚本时,我都会收到一条错误消息

“例外:服务错误:驱动器”

@ 代码中包含的行:

folder.addViewer();

我能做些什么来解决这个错误?

对于上下文,这是该行所属的代码部分。userstoadd并且editorstoadd都是变量。

function autoadd() {
  var folder = DriveApp.getFolderById("folderid");
  var usersheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('name');
  var viewers = folder.getViewers();
  var editors = folder.getEditors();
  viewers = viewers.map(function(item) {
    return
    item.getEmail().toLowerCase();
  }).sort();
  editors = editors.map(function(item) {
    return item.getEmail().toLowerCase();
  }).sort();
  viewers = viewers.concat(editors);
  var userstoadd = usersheet.getRange('H2:H').getValues().filter(String).map(function(item) {
    return item[0].toLowerCase();
  });
  var editorstoadd = usersheet.getRange('C2:C').getValues().filter(String).map(function(item) {
    return item[0].toLowerCase();
  });
  for (var i = 0; i < userstoadd.length; i++) {
    if (viewers.indexOf(userstoadd[i]) == -1 && editorstoadd.indexOf(userstoadd[i]) == -1) {
      folder.addViewer(userstoadd[i]);
      console.log(userstoadd[i]);
    }
  }
  for (var i = 0; i < editorstoadd.length; i++) {
    if (editors.indexOf(editorstoadd[i]) == -1) {
      folder.addEditor(editorstoadd[i]);
      console.log(editorstoadd[i]);
    }
  }
}

标签: google-apps-scriptgoogle-sheetsgoogle-drive-api

解决方案


推荐阅读