Создание интерфейсов Google Календаря

Дополнения Google Workspace могут предоставлять настраиваемые интерфейсы, когда пользователь просматривает или редактирует календари и события календаря. Это позволяет предоставлять пользователю дополнительную актуальную информацию, автоматизировать задачи и подключать сторонние системы к Календарю Google.

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

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

Доступ к пользовательскому интерфейсу дополнения

В зависимости от способа открытия надстройка Google Workspace может определять интерфейс домашней страницы, интерфейс событий Календаря Google, интерфейс выбора вложений или все три:

  • Если пользователь щелкает значок надстройки в представлении календаря, надстройка выполняет соответствующую функцию calendar.homepageTrigger (если она присутствует). Эта функция создает и возвращает карточку домашней страницы в Календарь для отображения. Если функция calendar.homepageTrigger не определена, вместо нее отображается стандартная карточка домашней страницы.
  • Если пользователь открывает событие календаря, а затем щелкает значок надстройки или надстройка открывается, когда пользователь открывает событие, надстройка выполняет соответствующую функцию eventOpenTrigger (если она присутствует). Эта функция создает интерфейс событий календаря надстройки и возвращает его в Календарь Google для отображения.
  • Если надстройка определяет функцию eventAttachmentTrigger , надстройка отображается как поставщик вложений, когда пользователь нажимает Добавить вложение при редактировании события календаря. Когда надстройка выбрана, функция eventAttachmentTrigger создает интерфейс выбора вложения надстройки и возвращает его в Календарь Google для отображения.

Создание интерфейса дополнения «Календарь»

Вы можете расширить Календарь Google с помощью надстройки Google Workspace, выполнив следующие действия:

  1. Решите, хотите ли вы, чтобы у вашего дополнения была домашняя страница , специфичная для Календаря. Также решите, хотите ли вы предоставить собственный интерфейс, когда пользователь редактирует события календаря.
  2. Добавьте соответствующие поля addOns.common и addOns.calendar в манифест проекта сценария надстройки, включая все необходимые области .
  3. Если вы предоставляете домашнюю страницу для календаря, реализуйте функцию calendar.homepageTrigger для создания этого интерфейса. Вы также можете использовать интерфейс common.homepageTrigger для нескольких хостов Google Workspace.
  4. Если вы предоставляете интерфейс событий календаря, вам необходимо реализовать функцию calendar.eventOpenTrigger для создания этого интерфейса. Подробности см. в разделе «Расширение интерфейса событий календаря» .
  5. Реализуйте связанные функции обратного вызова, необходимые для реагирования на взаимодействия пользователя с пользовательским интерфейсом, например нажатия кнопок.

Домашние страницы календаря

Календарь Google поддерживает отображение домашних страниц дополнений Google Workspace. Чтобы отобразить общую домашнюю страницу вашего дополнения в Календаре Google, просто убедитесь, что в манифесте дополнения есть поле addOns.calendar .

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

В любом случае вы должны указать имя триггерной функции домашней страницы в проекте скрипта вашего дополнения. Эта функция автоматически вызывается для создания домашней страницы Календаря Google, когда это необходимо. Вы должны реализовать эту функцию для создания и возврата одной Card или массива объектов Card , составляющих домашнюю страницу. Триггерной функции домашней страницы передается объект события в качестве параметра, который содержит некоторую общую информацию, такую ​​как платформа клиента. Вы можете использовать данные объекта события, чтобы адаптировать конструкцию домашней страницы.

Расширение интерфейса событий календаря

Календарь Google использует контекстный триггер, чтобы определить, какой интерфейс (если таковой имеется) отображать, когда пользователь редактирует событие Календаря. Когда триггер срабатывает, он выполняет контекстную функцию триггера, указанную в поле calendar.eventOpenTrigger в манифесте надстройки.

Вы должны реализовать функцию, указанную в поле calendar.eventOpenTrigger . Эта функция принимает объект события в качестве аргумента и должна возвращать либо один объект Card , либо массив объектов Card , которые Календарь будет отображать, пока у пользователя открыто событие.

Объекты событий

Объект события создается и передается в функцию контекстного триггера calendar.eventOpenTrigger , когда пользователь открывает событие календаря. Функция триггера может использовать информацию в этом объекте события, чтобы определить, как создавать дополнительные карты или управлять поведением надстроек. Объекты событий также создаются и передаются функциям homepageTrigger при первом открытии надстройки, а также когда пользователь щелкает или выбирает интерактивные виджеты.

Полная структура объектов событий описана в Объекты событий . Если «Календарь» является действующим ведущим приложением надстройки, объекты событий взаимодействия контекстного триггера и виджета включают поле объекта события «Календарь» , которое содержит информацию о клиенте, специфичную для календаря.

Обновление событий календаря

В дополнение к контекстному calendar.eventOpenTrigger , который срабатывает, когда пользователь открывает событие Календаря для редактирования, вы также можете определить calendar.eventUpdateTrigger , который срабатывает, когда пользователь обновляет и сохраняет событие Календаря. Этот триггер срабатывает только в том случае, если пользователь вносит одно или несколько из следующих изменений:

  • Добавляет одного или нескольких участников.
  • Удаляет одного или нескольких участников.
  • Добавляет другое решение для конференц-связи или переключается на него.

Когда этот триггер срабатывает, он выполняет функцию триггера, указанную в поле манифеста calendar.eventUpdateTrigger . Функция выполняется до сохранения редактирования события календаря.

calendar.eventUpdateTrigger обычно используется для выполнения одного или нескольких из следующих действий:

  • Обновите интерфейс событий календаря надстройки в ответ на изменения пользователя в событии календаря.
  • Синхронизируйте данные о событиях Календаря со сторонней системой, например с системой конференц-связи, подключенной к Календарю Google.

Если вам нужна надстройка для внесения изменений в данные события календаря (например, в список участников), вы должны установить для поля манифеста надстройки calendar.currentEventAccess значение WRITE или READ_WRITE . Для этого также необходимо, чтобы надстройка имела область действия https://www.googleapis.com/auth/calendar.addons.current.event.write .

Добавление решений для конференц-связи

Решения для конференц-связи представляют собой сторонние варианты конференций, которые пользователи могут прикреплять к событиям Календаря Google. Обзорная документация по сторонним конференц-связям содержит подробную информацию о том, как создать надстройку, добавляющую новые решения для конференц-связи. Для этого типа расширения нет необходимости создавать пользовательский интерфейс; добавленные решения просто отображаются в виде опций в раскрывающемся меню пользовательского интерфейса событий Календаря Google.