С уважением,
Я нашел несколько вопросов, касающихся этой ошибки: "ScriptError: Authorisation is required to perform that action."
, но я не могу найти ни одного, касающегося моей проблемы.
То, что я пытаюсь сделать, это вызвать файл функции .gs из файла .html, используя google.script.run, где оба файла находятся в библиотеке. Ссылаясь на этот ответ, этот ответ и отчет об ошибке, я создал функцию-оболочку в скрипте, который использует библиотеку , но так и не удалось завершить выполнение.
Вот что я сделал:
.html в библиотеке:
<html>
<head>
<script>
function onFailure(error) {
console.log("ERROR: " + error);
}
function myfunc() {
console.log("HERE");
google.script.run.withFailureHandler(onFailure).callLibraryFunction('LibraryName.test', ['test123']);
}
</script>
</head>
<body>
<button onclick="myfunc()">CLICK</button>
</body>
</html>
.gs в библиотеке
function test(x){
Logger.log(x);
}
.gs в скрипте, который использует библиотеку:
function callLibraryFunction(func, args) {
var arr = func.split(".");
var libName = arr[0];
var libFunc = arr[1];
args = args || [];
return this[libName][libFunc].apply(this, args);
}
Консоль регистрирует HERE
, но затем записывает ERROR: ScriptError: Authorisation is required to perform that action.
вместо ожидаемого вывода, test123
.
ПРИМЕЧАНИЕ. HTML-код предназначен для пользовательского немодального диалогового окна в Таблицах, а не для веб-приложения.
Я очень надеюсь, что кто-то может помочь мне в этом. Заранее спасибо.
doGet()
? Потому что я не обращаюсь к нему из URL-адреса веб-приложения, и я просто использую HTML для настраиваемого диалогового окна в Таблицах, а не для перенаправления на страницу. (Прошу прощения, что забыл упомянуть об этом ранее, я обновлю вопрос.) Однако я создал HtmlOutput из файла HTML [например:.createOutputFromFile("htmlfile")
], и HTML отображается и запускается, поскольку консоль регистрируетHERE
, как я упоминал в вопрос. - person Bismuth Habs   schedule 16.11.2020test123
. Это означает, что он работает при непосредственном использовании без диалога. Кроме того, все необходимые разрешения/области были проверены. Я даже попытался сделать область действия более общей, отредактировав файл манифестаappscript.json
. Но все равно не повезло. - person Bismuth Habs   schedule 17.11.2020https://www.googleapis.com/auth/documents
https://www.googleapis.com/auth/drive
https://www.googleapis.com/auth/drive.scripts
https://www.googleapis.com/auth/gmail.compose
https://www.googleapis.com/auth/script.container.ui
https://www.googleapis.com/auth/script.external_request
https://www.googleapis.com/auth/spreadsheets
3. Спасибо. Я прочитал это. Пробовал. К сожалению, не повезло. - person Bismuth Habs   schedule 17.11.2020