У меня проблемы с вызовом серверной функции AppScript из боковой панели html в Google Sheets.
Я повторил свою проблему с простым примером кода ниже.
Что он должен делать
Нажатие на кнопку должно вызвать alert
в моем скрипте Code.gs и отобразить предупреждение для пользователя.
Что на самом деле происходит
Нажатие на кнопку показывает ошибку:
We're sorry, a server error occurred while reading from storage. Error code PERMISSION_DENIED.
В разделе «Выполнения» панели мониторинга AppScript для alert()
нет записей, поэтому кажется, что функция даже не вызывается?
Код .gs:
function onOpen() {
const ui = SpreadsheetApp.getUi();
ui.createMenu('Matthew')
.addItem('Show Sidebar', 'sidebar')
.addToUi();
};
function sidebar() {
const html = HtmlService.createHtmlOutputFromFile('test.html')
.setTitle('Matthew Experiment')
.setWidth(300);
SpreadsheetApp.getUi().showSidebar(html);
}
function alert() {
SpreadsheetApp.getUi().alert("alert!");
}
test. html (хорошо тело)
<body>
<div class="container">
<button class="btn btn-success" onclick="doSomething()">Click Me!</button>
</div>
<script>
function doSomething() {
google.script.run.withFailureHandler(function(error) {
console.log("error")
console.log(error.message)
}).withSuccessHandler(function(result) {
console.log("done!")
}).alert();
}
</script>
</body>
Я подтвердил, что клиентский код правильно раздувается именами функций на стороне сервера , это просто вызов функции, которая не работает.
Мой код такой же, как и во всех руководствах по началу работы, но я больше никто не пишет об этой проблеме. Надеясь, что кто-то здесь знает о проблеме глубже, чем я.
Обновление, даже страннее
Я открыл личное окно, и оно РАБОТАЛО, поэтому я подумал, может быть, это расширение вызывает проблемы? Но даже отключение всех расширений не исправляет это в главном окне. Я выполнил вход в свою учетную запись Google, но по-прежнему не могу заставить его работать, не открывая приватное окно браузера.
Эта проблема является постоянной в chrome / edge / firefox.