2015-07-03 230 views
3

創建時間觸發我想創建一個使用谷歌腳本簡單的時間觸發我的表,我做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!'); 
} 
+0

發佈生成觸發器的代碼。你讀過所有的限制嗎? https://developers.google.com/apps-script/guides/triggers/installable#limitations – Kriggs

+0

@Kriggs,所以我怎麼從這個'時間驅動的觸發器不能更頻繁地運行每小時一次。'當我這樣做ScriptApp.newTrigger(「consolius」)。timeBased()。everyMinutes(1).create();',所以我不能這樣做?但存在每分鐘運行代碼的方法? – nowiko

回答

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該項目的其他功能,包括觸發器調用的函數,這會很快變得相當凌亂! (每次調用任何函數時,都會執行「全局」)。

最後但並非最不重要:您不能在自定義函數中使用此類代碼,它必須位於您從菜單或按鈕運行的腳本中。

相關問題