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

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

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

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

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

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

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

Создание интерфейса дополнительного календаря

Вы можете расширить Google Calendar с помощью надстройки 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 будет отображать, пока пользователь открывает событие.

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

Объект события создаётся и передаётся в контекстную функцию-триггер 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 Календаря.