首页 文章

库函数作为定时触发器DriveApp访问

提问于
浏览
1

仍然是一个Apps脚本新手,仍然有挫折 . 任何帮助将不胜感激 .

Scenario: 用户A创建了一个名为“batchServices”的库脚本

batchServices包括函数weeklyTrigger(),它包含以下1299行,用于创建csv提取:

var url = DriveApp.getFolderById(folder)
.createFile(filename, csv, MimeType.CSV)
.getDownloadUrl()
.replace("?e=download&gd=true","");
return url;

用户X创建了电子表格S1和S2 . 用户A(库脚本batchServices的所有者)在“脚本编辑器库”菜单中以及API控制台中将Google表格API添加为高级Google服务 . 用户A然后将以下脚本添加到S1:

function weeklyTrigger() {
  batchServices.weeklyTrigger();
}

用户A然后添加触发器weeklyTrigger,时间驱动在00:00和01:00之间每周运行一次 .

触发器触发并批量每周触发器成功执行,创建所需的csv输出 . Hoorah .

The Problem: 用户B(不是库脚本的所有者,但具有共享读/写访问权限的用户)执行完全相同的步骤,将每周批处理服务添加到电子表格S2记住,S1和S2基本上是同一电子表格的副本,两者都归User X所有,写权限扩展到用户A和B.这两种方案的唯一区别是用户A拥有库脚本,而用户B只有写访问权限 . 这是在S2的每周触发事件触发并正确调用库脚本的类似命名函数时生成的错误报告:

Error Message (reformatted to suit SO:)

开始日期:3/5/18 12:32 AM功能:weeklyTrigger错误消息:访问被拒绝:DriveApp . (第1299行,文件“代码”,项目“BatchServices”)触发:基于时间结束:3/5/18 12:38 AM

看起来问题是身份验证问题 . 是否有必要采取额外步骤来允许用户B(谁不是库脚本的所有者但具有写访问权限)在电子表格S2中编写一个触发器,该触发器调用使用DriveApp调用的库函数?值得注意的是,用户A无法看到用户B在电子表格S2中 Build 的触发器,用户B无法在电子表格S1中看到用户A Build 的触发器 . 如何让用户A和B承担相同的权利?

1 回答

  • 0

    如上所述,答案很简单,我没有授予对DriveApp文件夹的访问权限(对用户B) . 向前和向上:-)

相关问题