Библиотеки скриптов Google Apps больше не ссылаются - PullRequest
1 голос
/ 06 января 2020

У меня есть 3 скрипта Google Apps, которые я пытаюсь разрешить общаться друг с другом с помощью опции библиотеки, но мне не удалось заставить ее работать. В какой-то момент у меня было 2 связанных, и это сработало, и затем я решил разделить один скрипт на 2, но теперь библиотеки не работают, и я чувствую, что упускаю что-то очевидное.

Libraries

Библиотеки SendToSlack и EmployeeList перечислены в третьем скрипте и выглядят нормально. Затем я попытался вызвать их с помощью:

// this one is in an external JS file

google.script.run.withSuccessHandler(populateNamesList).EmployeeList.getNames();

// this one is in a GS file as standard

SendToSlack.initalise(chan, botName, message, iconEmoji);

Этот код работал раньше. Теперь, когда я загружаю страницу, я получаю ошибку:

Uncaught TypeError: Cannot read property 'getNames' of undefined

И когда я нажимаю кнопку, чтобы активировать вторую строку, я получаю:

Uncaught  at userClicked

Я думаю, что код правильный но я как-то сломал библиотеки?

Редактировать: автозаполнение в онлайн-среде даже работает. Так что я уверен, что код правильный. Я не понимаю, почему это не работает при публикации.

1 Ответ

0 голосов
/ 06 января 2020

Используя google.script.run , вы можете выполнить любую функцию , определенную в вашем скрипте приложений на стороне сервера. Из документации:

Выполняет функцию сценария приложений на стороне сервера с соответствующим именем.

Однако вы не можете указать какую-либо переменную, как вы это делаете. Функции должны быть объявлены в глобальной области действия сценария, чтобы их можно было запускать. В этом случае, если вы хотите вызвать функцию getNames(), доступную через глобальный объект EmployeeList, вы должны создать глобальную функцию в вашем скрипте, которая инкапсулирует вызов. Например:

Code.gs

function getEmployeeNames() {
  return EmployeeList.getNames();
}

Стр. html

...
<script>
google.script.run.withSuccessHandler(populateNamesList).getEmployeeNames();
</script>
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...