Я попытался реализовать простое расширение "Multi selector sidebar" на основе ЭТОГО ЛИСТА , которое я нашел в этой ветке поддержки Google
Когда я копирую лист это работает нормально, но когда я пытаюсь поместить точно такой же код в реальный лист, это больше не работает. Он выдает ошибку, когда я пытаюсь получить доступ к функции GA из шаблона.
Я создал упрощенный тестовый проект, который также не работает для меня.
Чтобы воспроизвести ошибка:
- Создайте новую электронную таблицу на https://docs.google.com/spreadsheets/
- Создайте второй лист (вкладка внизу слева) и назовите его КАТЕГОРИИ
- Заполните несколько полей в первом столбце. Содержание не имеет значения
- Доступ к инструментам -> Редактор скриптов
В поле "code.gs" введите
function doGet() {
var html = HtmlService.createHtmlOutputFromFile('Index')
.setTitle('Multiple selector')
.setWidth(300);
SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
.showSidebar(html);
}
function onOpen(e) {
SpreadsheetApp.getUi().createMenu('Index')
.addItem('Show Sidebar', 'doGet')
.addToUi();
doGet();
}
function getOptions() {
var validation = {
sheet: 'CATEGORIES',
range: 'A2:A'
}
Logger.log("running getOptions");
Logger.log(SpreadsheetApp.getActive().getSheetByName(validation.sheet).getRange(validation.range).getDisplayValues());
return SpreadsheetApp.getActive().getSheetByName(validation.sheet).getRange(validation.range).getDisplayValues()
.filter(String)
.reduce(function(a, b) {
return a.concat(b)
})
}
И создайте второй файл (HTML file) с именем Index. html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
function onFailure(error) {
var div = document.getElementById('output');
div.innerHTML = "ERROR: " + error.message;
}
google.script.run.withFailureHandler(onFailure)
.getOptions();
</script>
</head>
<body>
<div id="output"></div>
</body>
</html>
Сохранить проект Нажмите Run-> Run function -> "onOpen" (при первом запуске вам, вероятно, потребуется авторизовать приложение)
Теперь на листе Должна быть боковая панель, которая открывается с ошибкой для меня PERMISSION_DENIED
Даже когда я выбираю проект в Ресурсах -> Проект облачной платформы, он не будет работать.
Как ни странно, если я использую исходную связанную (рабочую) электронную таблицу и что-то изменю в коде, она больше не будет работать для меня.
Вещи, которые я знаю к настоящему времени : - Он не работает с моей учетной записью gmail или приложений Google - Для других людей, использующих тот же документ, он работает - По-прежнему не работает, если я отключаю Adblocker - Не работает, если я получаю доступ к листу из режима инкогнито - Он делает работать, если я использую Firefox вместо Chrome
Чего мне не хватает?