Ошибка при использовании CardService в скрипте Google Apps Надстройка Google Sheets Workspace

Я создаю надстройку Google Workspace для Google Таблиц и пытаюсь отобразить диалоговое окно, используя карточку, созданную CardService, но получаю следующее сообщение об ошибке.

TypeError: невозможно прочитать свойства неопределенного (чтение «newCardHeader»)

Похоже, объект CardService — это undefined?

Что я делаю не так?

Код.gs

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 24.01.2023 09:19

@TheMaster Ошибка теперь изменилась и указывает на то, что это происходит в строке, пытающейся прочитать .newCardHeader()

Let Me Tink About It 24.01.2023 11:13

@TheMaster На самом деле, я думаю, вы могли бы решить эту проблему. Когда вы спросили, является ли это надстройкой редактора или надстройкой рабочей области. Наверное, я думал, что это надстройка для рабочей области, но на самом деле это могла быть только надстройка для редактора, поскольку я пишу скрипт в файлах скриптов, привязанных к Google Sheet. И это может быть то, что мешает работе CardService? Это звучит правильно?

Let Me Tink About It 24.01.2023 11:13

Это звучит точно.

TheMaster 24.01.2023 11:57

Связанный: stackoverflow.com/q/74696713/1595451

Rubén 24.01.2023 18:52
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
5
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Резюме из комментариев:

@TheMaster На самом деле, я думаю, вы могли бы решить эту проблему. Когда вы спросили, является ли это надстройкой редактора или надстройкой рабочей области. Наверное, я думал, что это надстройка для рабочей области, но на самом деле это могла быть только надстройка для редактора, поскольку я пишу скрипт в файлах скриптов, привязанных к Google Sheet. И это может быть причиной того, что CardService не работает?

Итак, убедитесь, что надстройка является надстройкой Google Workspace, а код написан в виде отдельного скрипта. Если скрипт написан в редакторах кода, привязанных к Google Sheet, то CardService не будет работать, поскольку CardService доступен только для надстроек Google Workspace, а не для надстроек Google Editor.

Код надстройки Google Workspace можно включать в ограниченные сценарии, просто избегайте использования Card Service с классом Ui (используется для создания диалоговых окон и боковых панелей вместе со службой HTML).

Rubén 24.01.2023 18:39

Другие вопросы по теме