stackoverflow.com/q/46248743/1595451

ала этого месяца этот код больше не работает

function onEdit(e){    
              var html = HtmlService.createTemplateFromFile( 'MyHtmlFile' )
              .evaluate()
              .setWidth( 800 )
              .setHeight( 400 );
              SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
              .showModalDialog( html, 'My page title' ); 
}

Когда я редактирую ячейку таблицыНЕТ всплывающее окно не отображается но я получил этоошибка в консоли:

Сценарий Google Apps: у вас нет разрешения на вызов showModalDialog

Ответы на вопрос(1)

Решение Вопроса

onEdit() должен бытьУстанавливаемый триггер потому что он использует сервис, который требует авторизации.

нота: переименоватьonEdit() при использовании его в качестве устанавливаемого триггера, чтобы избежатьвозможные проблемы

Как и простые триггеры, устанавливаемые триггеры позволяют скрипту Apps автоматически запускать функцию при возникновении определенного события, например, открытия документа.Однако устанавливаемые триггеры обеспечивают большую гибкость, чем простые триггеры: они могут вызывать службы, требующие авторизации....

Управление триггерами вручную:

Чтобы вручную создать устанавливаемый триггер через диалоговое окно в редакторе сценариев, выполните следующие действия:

В редакторе сценариев выберите «Правка»> «Триггеры текущего проекта».Нажмите на ссылку с надписью: триггеры не настроены. Нажмите здесь, чтобы добавить один сейчас.Под Run выберите название функции, которую вы хотите вызвать.В разделе «События» выберите «Управляемый временем» или «Приложение Google», к которому привязан скрипт (например, Из электронной таблицы).Выберите и настройте тип триггера, который вы хотите создать (например, таймер часов, который запускается каждый час, или триггер при открытии).При желании, нажмите «Уведомления», чтобы настроить, как и когда с вами свяжутся по электронной почте, если сработала ваша функция.Нажмите Сохранить.
 Kos06 дек. 2017 г., 15:06
Имейте в виду, что Google недавно изменил поведение устанавливаемых триггеров:stackoverflow.com/questions/47479954/...
 Kos06 дек. 2017 г., 15:29
Я предполагаю, что вы правы. Грозное изменение, сделанное Google, заключается в том, чтоshowModalDialog теперь требуется авторизация пользователя, поэтому он больше не может использоваться в простых триггерах
 random-parts06 дек. 2017 г., 15:24
Если это простой триггер, ошибка действительно происходит. Код выше был протестирован на новом листе, и ошибка была воспроизведена. Как только он был перемещен в устанавливаемый триггер, он работал правильно
 Rubén07 дек. 2017 г., 04:30
Использование onEdit, которое является зарезервированным именем функции для устанавливаемых триггеров, может привести к неожиданным результатам. Видетьstackoverflow.com/q/46248743/1595451
 random-parts06 дек. 2017 г., 15:20
Пока @MisaelSab - это тот, который устанавливает триггер, он является рабочим решением вышеуказанного кода проблемы, следовательно,Управление триггерами вручную, Если они смогут получить доступ к коду, они смогут установить устанавливаемый триггер, исправляющий ошибку. С другой стороны, это изменение полезно знать и может быть причиной ошибки, которую я видел в одном из моих проектов, спасибо за это

Ваш ответ на вопрос