Создание интерфейсов Google Диска

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

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

Вы можете открыть надстройку Google Workspace на Google Диске, если ее значок отображается в столбце значков в правой части пользовательского интерфейса Диска. Надстройка Google Workspace может определять интерфейс домашней страницы, интерфейс выбора элемента или и то, и другое:

  • Если пользователь щелкает значок надстройки, находясь на Google Диске, надстройка выполняет соответствующую функцию drive.homepageTrigger (если она присутствует). Эта функция создает и возвращает карточку домашней страницы на Google Диск для отображения. Если функция drive.homepageTrigger не определена, вместо нее отображается стандартная карточка домашней страницы.
  • Если пользователь выбирает один или несколько элементов на Google Диске, а затем щелкает значок надстройки или выбирает элементы, когда надстройка открыта, надстройка выполняет соответствующую контекстную функцию drive.onItemsSelectedTrigger (если она присутствует). Эта функция создает контекстный интерфейс Google Диска надстройки «Выбранные элементы» и возвращает его на Google Диск для отображения.

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

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

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

Главные страницы Диска

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

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

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

Контекстный интерфейс Диска для выбранных элементов

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

Чтобы создать интерфейс контекстного выбора элементов для Диска, необходимо сделать следующее:

  1. Убедитесь, что манифест надстройки включает область https://www.googleapis.com/auth/drive.addons.metadata.readonly .

  2. Убедитесь, что манифест содержит drive.onItemsSelectedTrigger .

  3. Реализуйте функцию, указанную в поле drive.onItemsSelectedTrigger . Эта функция принимает объект события в качестве аргумента и должна возвращать либо один объект Card , либо массив объектов Card .

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

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

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

Полная структура объектов событий описана в Объекты событий . Если Диск является действующим ведущим приложением надстройки, объекты контекстных событий включают поле объекта события Диска , которое содержит информацию о клиенте, специфичную для Диска.

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

В следующем примере показан объект события Drive , который передается в функцию drive.onItemsSelectedTrigger :

    {
      "commonEventObject": { ... },
      "drive": {
        "activeCursorItem":{
          "addonHasFileScopePermission": true,
          "id":"0B_sX1fXRRU6Ac3RhcnRlcl9maWxl",
          "iconUrl": "https://drive-thirdparty.googleusercontent.com...",
          "mimeType":"application/pdf",
          "title":"How to get started with Drive"
        },
        "selectedItems": [
          {
            "addonHasFileScopePermission": true,
            "id":"0B_sX1fXRRU6Ac3RhcnRlcl9maWxl",
            "iconUrl":"https://drive-thirdparty.googleusercontent.com...",
            "mimeType":"application/pdf",
            "title":"How to get started with Drive"
          },
          ...
        ]
      },
      ...
    }