Я создаю надстройку Google Workspace для Google Таблиц и пытаюсь отобразить диалоговое окно, используя карточку, созданную CardService
, но получаю следующее сообщение об ошибке.
TypeError: невозможно прочитать свойства неопределенного (чтение «newCardHeader»)
Похоже, объект CardService
— это undefined
?
Что я делаю не так?
const ui = SpreadsheetApp.getUi();
const onOpen = e => {
ui.createAddonMenu()
.addItem( 'Help', 'showHelp', )
.addToUi();
}
const buildCard = () => {
const header = CardService.newCardHeader()
.setTitle( "CardTitle", );
const card = CardService.newCardBuilder()
.setHeader( header, )
.build();
return card;
}
const showHelp = () => {
const card = buildCard();
ui.showDialog( card, );
}
@TheMaster Ошибка теперь изменилась и указывает на то, что это происходит в строке, пытающейся прочитать .newCardHeader()
@TheMaster На самом деле, я думаю, вы могли бы решить эту проблему. Когда вы спросили, является ли это надстройкой редактора или надстройкой рабочей области. Наверное, я думал, что это надстройка для рабочей области, но на самом деле это могла быть только надстройка для редактора, поскольку я пишу скрипт в файлах скриптов, привязанных к Google Sheet. И это может быть то, что мешает работе CardService
? Это звучит правильно?
Это звучит точно.
Связанный: stackoverflow.com/q/74696713/1595451
Резюме из комментариев:
@TheMaster На самом деле, я думаю, вы могли бы решить эту проблему. Когда вы спросили, является ли это надстройкой редактора или надстройкой рабочей области. Наверное, я думал, что это надстройка для рабочей области, но на самом деле это могла быть только надстройка для редактора, поскольку я пишу скрипт в файлах скриптов, привязанных к Google Sheet. И это может быть причиной того, что CardService не работает?
Итак, убедитесь, что надстройка является надстройкой Google Workspace, а код написан в виде отдельного скрипта. Если скрипт написан в редакторах кода, привязанных к Google Sheet, то CardService
не будет работать, поскольку CardService
доступен только для надстроек Google Workspace, а не для надстроек Google Editor.
Код надстройки Google Workspace можно включать в ограниченные сценарии, просто избегайте использования Card Service с классом Ui (используется для создания диалоговых окон и боковых панелей вместе со службой HTML).
Какой тип аддона - редактор или рабочая область? Какая строка выдает ошибку?