2015-07-03 2 views
3

Я хочу создать простое время запуска на мой лист с помощью Google Script, я все, как описано в docs, но когда я вызываю функцию я получаю ошибку:Создать триггер времени с Google Script и электронные таблицы

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 Другая функция в этом проекте, включая функцию, которую вызовут триггеры, быстро станет довольно беспорядочной! (все, что является «глобальным», выполняется каждый раз, когда вызывается любая функция).

Последнее, но не менее важное: вы не можете использовать такой код в пользовательской функции, он должен быть в скрипте, который вы запускаете из меню или с помощью кнопки.