#google-apps-script
Вопрос:
Я пытаюсь создать скрипт приложения Google с помощью этого простого кода ниже
function onInstall(e) {
onOpen(e);
}
function onOpen(e) {
SpreadsheetApp.getUi()
.createMenu('Test Menu')
.addItem('Test', 'doTest')
.addToUi();
}
function doTest() {
var htmlOutput = HtmlService
.createHtmlOutput('<p>Some Text</p>')
.setTitle('My title');
SpreadsheetApp.getUi().showSidebar(htmlOutput);
}
Боковая панель отображается правильно
[1]: https://i.stack.imgur.com/6QTR8.png
Но я получаю эту ошибку в консоли chrome:
сообщение: «Во время транспортировки или обработки этого запроса произошла ошибка. Код ошибки = 10, Путь = /wardeninit»
название: «Транспортер»
стек:»TransportError: Во время транспортировки или обработки этого запроса произошла ошибка. Код ошибки = 10, Путь = /wardeninit при новом Qo (https://docs.google.com/static/macros/client/js/3949079914-warden_bin_i18n_warden__vi.js:200:381) в Vo.w.Xc (https://docs.google.com/static/macros/client/js/3949079914-warden_bin_i18n_warden__vi.js:208:372) в Cf (https://docs.google.com/static/macros/client/js/3949079914-warden_bin_i18n_warden__vi.js:79:228) в Бф (https://docs.google.com/static/macros/client/js/3949079914-warden_bin_i18n_warden__vi.js:76:472) в xf.A (https://docs.google.com/static/macros/client/js/3949079914-warden_bin_i18n_warden__vi.js:76:419) в Cf (https://docs.google.com/static/macros/client/js/3949079914-warden_bin_i18n_warden__vi.js:79:228) в Бф (https://docs.google.com/static/macros/client/js/3949079914-warden_bin_i18n_warden__vi.js:76:472) в Во. (https://docs.google.com/static/macros/client/js/3949079914-warden_bin_i18n_warden__vi.js:207:159) в Ан (https://docs.google.com/static/macros/client/js/3949079914-warden_bin_i18n_warden__vi.js:165:294) в Do (https://docs.google.com/static/macros/client/js/3949079914-warden_bin_i18n_warden__vi.js:200:262)»
Я уже делал какой-то скрипт приложения Google раньше, но недавно получил эту ошибку. Что я делаю не так?
Обновлено Из-за этого «TransportError», любой скрипт «google.script.run» завершится ошибкой. Если я обновлю код следующим образом:
function doTest() {
var htmlOutput =
HtmlService.createHtmlOutputFromFile('Index');
SpreadsheetApp.getUi().showSidebar(htmlOutput);
}
function doSomething() {
Logger.log('I was called!');
}
И в Index.html является
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
function onSuccess() {
console.log("onSuccess");
}
function onFailure(error) {
console.log("onFailure",error);
}
google.script.run.withSuccessHandler(onSuccess).withFailureHandler(onFailure).doSomething();
</script>
</head>
<body>
</body>
</html>
Ошибка всегда будет вызываться, и ошибка будет пустой.
Обновление 2 Проблема со сценарием «google.script.run» завершится ошибкой. только для учетной записи google workspace. Если я перейду в свою личную учетную запись gmail и сделаю аналогичный код, проблемы не возникнет.
Комментарии:
1. 1) Есть ли конкретная причина, по которой вы используете onInstall() и onOpen()? Функция onOpen() запускается при каждом открытии документа.
2. 2) Ошибки постоянно появляются в консоли, часто не связанные с вашим кодом. Если бы это не мешало вашей боковой панели работать, я бы не слишком беспокоился об этом. За исключением функции onInstall () (не уверен, почему это так, но может быть законной причиной), код выглядит хорошо.
3. Я согласен с @KrispinMiller, что я постоянно сталкиваюсь с подобными вещами. Я об этом не беспокоюсь.
4. @KrispinMiller я только что обновил проблему. Из-за «TransportError» любой сценарий «google.script.run» завершится ошибкой
5. @Cooper Из-за «TransportError» любой скрипт «google.script.run» завершится ошибкой
Ответ №1:
Я использовал ваш код вот так:
html:(имя файла: ah3.html)
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script>
function onSuccess() {
console.log("onSuccess");
}
function onFailure(error) {
console.log("onFailure",error);
}
google.script.run.withSuccessHandler(onSuccess).withFailureHandler(onFailure).doSomething();
</script>
</head>
<body>
<div>Hello World</div>
</body>
</html>
gs:
function doTest() {
var htmlOutput = HtmlService.createHtmlOutputFromFile('ah3').setTitle('My title');
SpreadsheetApp.getUi().showSidebar(htmlOutput);
}
function doSomething() {
Logger.log('I was called!');
}
Это работает на меня.
Если вы посмотрите в консоль, вы увидите onSuccess
напечатанное, а если вы посмотрите в исполнениях, вы увидите Sep 3, 2021, 10:16:03 PM Info I was called!
Комментарии:
1. Не работает @Купер. Я снова создал код, как и ты.
2. Я открываю новый файл Google sheet, использую редактор инструментов/ сценариев для создания нового сценария, но проблема все равно возникает
3. я нахожу новую проблему. Если я использую другую учетную запись gmail (мою личную учетную запись), проблема исчезнет. Но если я перейду в учетную запись Google workspace, проблема повторится
4. Если у вас есть администратор в вашей учетной записи рабочей области, я бы поговорил с ними об этой проблеме.