谷歌脚本openById:您没有权限执行该操作

时间:2015-01-02 16:06:46

标签: google-apps-script google-sheets google-drive-api

电子表格中的事件驱动脚本会打开另一个电子表格

var ss = SpreadsheetApp.openById(otherSpreadsheetId); 

查看执行记录,我收到以下错误

  

SpreadsheetApp.openById([0AjqSnE_p3nFqdDN0LWpFbjFqVDRwNmFGOV91QzZrZc])   [0秒]执行失败:您无权执行   那个动作。

当我直接在调试器中运行该函数时,我成功打开了另一个电子表格。当函数由“onEdit”事件运行时,我得到错误。

我是否需要启用特定的API?

2 个答案:

答案 0 :(得分:3)

可安装触发器

有两种类型的OnEdit触发器。可安装触发器可以“更改其他文件”,请参阅:developers.google.com/apps-script/guides/triggers/installable

@kusi提供了答案作为评论,只是在这里添加。

答案 1 :(得分:0)

您可以在当前工作表中以编程方式设置可安装触发器,这样就可以调用openById

function onOpen() {
  ScriptApp.newTrigger('myOnEdit')
   .onEdit()
   .create();
}

function myOnEdit(e){
   SpreadsheetApp.openById('id_of_other_sheet');
}