使用Google Script和电子表格创建时间触发器

时间:2015-07-03 12:10:29

标签: javascript timer google-apps-script

我想使用Google Script为我的工作表创建一个简单的时间触发器,我就像在docs中所描述的那样,但是当我调用函数时出现错误:

Google Apps: You do not have permission to call newTrigger

我尝试在互联网上找到解决方案,但没有得到任何结果。有人能帮助我吗?谢谢!

P.S。我的代码:

 ScriptApp.newTrigger("consolius")
   .timeBased()
   .everyMinutes(1)
   .create();

function consolius() {
   SpreadsheetApp.getUi().alert('Hello, world!');
}

1 个答案:

答案 0 :(得分:2)

评论中提到的限制不适用于您的用例,它们适用于add-ons only。右info is here

但是,即使您实际上可以创建一个定时器触发器来每分钟运行一个函数,您也无法使用您尝试的方法,因为定时器触发器无法与Ui交互。

如果查看错误通知,您会看到该消息:

Details:
Start   Function            Error Message                                            Trigger    End
7/3/15 4:08 PM  consolius   Cannot call SpreadsheetApp.getUi() from this context. (line 26, file "clean sheet") time-based  7/3/15 4:08 PM

另一个兴趣点:您应该包含在函数中创建触发器的脚本,否则每次在该项目中运行 ANY 其他函数时都会创建一个新触发器,包括该函数触发呼叫,这将很快变得相当混乱! (每次调用任何函数时都会执行“全局”的所有内容。)

最后但并非最不重要:您不能在自定义函数中使用此类代码,它必须位于您从菜单或按钮运行的脚本中。