Проверка как надстройка вызывает ошибку при наличии onOpen - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь создать дополнение для Google Sheets. Когда лист открыт, скрипт должен создать пункт меню в дополнениях.

Элемент добавляется и работает, когда я открываю Лист, к которому он изначально привязан. При попытке протестировать его как надстройку с onOpen в качестве объявленной функции в моем скрипте, это всегда приводит к тому, что элемент не добавляется и регистрируется ошибка в консоли Google Chrome DevTools для листа, открытого для теста:

Скрипт Google Apps: К сожалению, произошла ошибка сервера. Пожалуйста, подождите немного и попробуйте еще раз.

Эта ошибка не возникает, если я закомментирую метод onOpen.

Я попытался запустить его как дополнение следующим образом с Auth.none и Auth.limited:

  • Оригинальная копия сценария, приложенная к исходному Листу.
  • Оригинальная копия скрипта, работающая с отдельным Листом.
  • Копия сценария в отдельном файле Google Scripts, работающем с другим Листом.
  • Создание нового Sheet и ограниченного скрипта только с пустой функцией onOpen.

Все это приводит к приведенной выше ошибке, и когда я раскомментирую содержимое функций onOpen, имеющих код, кажется, что ни один из их кодов не запускается.

Вот код оригинальной копии, но имейте в виду, что я все еще получаю сообщение об ошибке, даже если содержимое закомментировано, и this утверждает, что даже если createMenu используется для дополнения, оно корректно обрабатывается Google Сценарий приложения:

function onOpen(e){
  var menu = SpreadsheetApp.getUi().createAddonMenu(); // Or DocumentApp or FormApp.
  if (e && e.authMode == ScriptApp.AuthMode.NONE) {
    // Add a normal menu item (works in all authorization modes).
    menu.addItem("Show Sidebar", "showSidebar");
    menu.addToUi();
  } else {
    // Add a new menu (doesn't work in AuthMode.NONE).

    var topUI = SpreadsheetApp.getUi();
    topUI.createMenu("Mail Merge")
        .addItem("Show Sidebar", "showSidebar")
        .addToUi();
  }
}

Объект Logger также, похоже, не регистрирует мои сообщения при запуске скрипта как дополнение.

1 Ответ

0 голосов
/ 28 июня 2018

Копирование листа в другую учетную запись и простое владение ею этой учетной записью (не на групповом диске) позволило открыть меню при тестировании его как надстройки с обоими типами авторизации. Ошибка скрипта Google App также перестала происходить после этого.

Наиболее тесно связанной с информацией об ограничениях Team Drive, которую я смог найти, была эта , которая говорит, что она ограничивает взаимодействие с облачной платформой. Но эта ссылка является страницей Google по настройке и запуску надстройки Test As, и в ней ничего не говорится о Team Drive или облачной платформе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...