Триггер календаря Google не срабатывает - PullRequest
0 голосов
/ 07 мая 2020

Цель состоит в том, чтобы передавать данные из Календаря Google в Таблицу Google всякий раз, когда календарь редактируется. Для этого нам понадобится скрипт, который передает данные, и необходимо настроить триггер календаря.

Спасибо Олегу Вальтеру за его прекрасное и исчерпывающее объяснение, как создать скрипт на этой странице:

События календаря Google в электронную таблицу Google автоматически c refre sh onEdit

передача данных уже работает нормально, когда скрипт запускается из листов Google. Я использую модифицированную версию скрипта Олега, которая работает хорошо, и я не уверен, имеет ли смысл повторно размещать ее здесь (поскольку это не проблема).

Я попытался создать сначала триггер с функцией Олега:

/**
 * Installs Calendar trigger;
 */
function calendarTrigger() {
  var trigger = ScriptApp.newTrigger('callback name here')
  .forUserCalendar('calendar owners email here')
  .onEventUpdated()
  .create();
}

но триггер не сработал, когда я добавил новое событие в календарь. Проверил триггеры, подключенные к проекту, и триггер, созданный вышеуказанной функцией, был там. Проверил выполнение, и ничего не обнаружилось.

Затем я вручную удалил триггер и вручную создал новый, следуя инструкциям в разделе «Управление триггерами вручную» этой страницы:

https://developers.google.com/apps-script/guides/triggers/installable#google_apps_triggers

Триггер был создан снова, который в основном выглядел так же, как и триггер, созданный вышеупомянутой функцией, но при тестировании он все равно не сработал.

Теперь я застрял и не знаю, что еще попробовать. Предполагалось, что это сработает, но, возможно, я пропустил настройку чего-то еще, что может потребоваться для этого.

Я использую простую учетную запись Google, подключенную к одному адресу электронной почты (не бизнес-пакет). У меня никогда не было проблем с другими триггерами, связанными с листами, которые я не мог решить (иногда платформа отказывается работать должным образом, но потом все возвращается в норму).

Я был бы очень признателен за любой совет о том, что еще попробовать, или даже лучше, если вы знаете, в чем проблема.

Заранее спасибо,

Золтан

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Ну, после некоторых проб и ошибок на основе доброго ответа ziganotschka (еще раз спасибо) нашел проблему. Это вызвано некоторой путаницей в отношении того, что предполагалось

.forUserCalendar ('электронная почта владельцев календаря') и

Calendar ID быть.

В моем аккаунте Календаря есть несколько календарей, но два из них представляют для нас интерес:

1) «Главный календарь» который является календарем по умолчанию связанный с учетной записью. Если все остальное будет удалено, оно останется.

2) еще один календарь, который я добавил именно с той целью, чтобы его можно было подключить к электронной таблице, и назвал его «Авто-биллинг» ( только это проверяется и отображается).

Главный календарь имеет это на странице Настройки (изменил свой адрес электронной почты):

Интегрировать календарь

Идентификатор календаря

myAddress@yahoo.com

В календаре Авто-биллинг это есть на странице Настройки (изменен идентификатор) :

Интегрировать календарь

Идентификатор календаря

svj8tu1o458a9s1488xxxxxxxx@group.calendar.google.com

Мое намерение состояло в том, чтобы использовать для этой цели настраиваемый календарь вместо использования по умолчанию Основной календарь , потому что он может быть заполнен всеми видами событий.

Поэтому, когда триггер создается вручную, следует добавить

svj8tu1o458a9s1488xxxxxxxx@group.calendar.google.com

в поле « Адрес электронной почты владельца календаря » вместо адреса электронной почты владельца календаря.

Когда триггер создается из скрипта с использованием приведенного выше фрагмента, следует использовать

.forUserCalendar("svj8tu1o458a9s1488xxxxxxxx@group.calendar.google.com")

.

В скрипте, который передает данные из Календаря на лист, * Следует использовать 1065 *

var Calendar = CalendarApp.getCalendarById("svj8tu1o458a9s1488xxxxxxxx@group.calendar.google.com");

. Таким образом, триггер сработает при редактировании событий в календаре Auto Billing .

Спасибо за руководство Ziganotschka, а также большое спасибо Олегу за оригинальный сценарий. Надеюсь, эта отладка поможет и другим.

0 голосов
/ 07 мая 2020

Триггер Календаря Google - это функция для Календаря Google

Он не работает для календарей «myaddress@yahoo.com»

...