Переход с Drive Activity API v1

В этом руководстве объясняются различия между Google Drive Activity API v1 и v2, а также рассказывается, как изменить приложение v1 для поддержки API v2.

Авторизация

API v1 использовал эту область:

  • https://www.googleapis.com/auth/activity

Для v2 API требуется одна из следующих областей:

  • https://www.googleapis.com/auth/drive.activity
  • https://www.googleapis.com/auth/drive.activity.readonly

Имена ресурсов

В API v1 идентификаторы таких объектов, как элементы и пользователи Google Диска, представляли собой непрозрачные строки. В API версии 2 на эти объекты обычно ссылаются с помощью имен ресурсов. Дополнительные сведения см. в Руководстве по проектированию Cloud API .

Эти идентификаторы, как правило, могут быть преобразованы. Например, на элементы Диска в API версии 2 ссылаются с помощью items/ ITEM_ID_V1 .

Запросы

Формат запроса для v2 аналогичен формату v1. В частности, вы по-прежнему можете запрашивать активность для файла Диска или предка Диска, однако обратите внимание, что вы должны отформатировать эти параметры запроса как имена ресурсов , добавив к ним префикс items/ .

«Группировка» теперь называется Consolidation , а параметры запроса source и userId удалены.

Существуют также новые параметры фильтра , которые позволяют ограничивать типы данных об активности, возвращаемых в ответе.

Действия

В API v1 тип действия и данные, связанные с этим действием, находились в отдельных полях. Например, если поле primaryEventType содержит значение move , тогда приложения будут предполагать, что поле move верхнего уровня заполнено добавленными и удаленными родительскими элементами.

В API v2 эти поля больше не различаются. В сообщении ActionDetail установлено ровно одно поле. Он обозначает тип действия и содержит сведения, связанные с этим действием. Например, ActionDetail , представляющий перемещение, задает только поле move , и в этом поле перечислены добавленные и удаленные родительские элементы.

Поле primaryEventType API версии 1 примерно соответствует primaryActionDetail версии 2.

Актеры

В API версии 1 возвращаемое действие содержало User , если действующее лицо было известным пользователем, и, возможно, содержало поле верхнего уровня, такое как fromUserDeletion , для особых случаев.

В v2 API доступен более богатый набор типов user.knownUser Actor , когда действующее лицо является известным пользователем. Если вашему приложению требуется подробная информация о пользователях, оно может запросить ее из API People , передав поле KnownUser personName в метод people.get .

Цели

В API v1 целями всегда были элементы Диска. В API v2 целями могут быть другие типы объектов на Диске. Например, изменения на диске имеют целевой тип Drive . Корневая папка общего диска по-прежнему возвращается (как элемент DriveItem в root поле), но она не является непосредственной целью действия. Аналогичная концепция применяется к ресурсу FileComment , parent поле которого ссылается на элемент Диска, содержащий целевой поток комментариев.

Консолидированная деятельность

В v1 API стиль ответа менялся при установке стратегии консолидации («группировки»). В частности, когда консолидация была включена, каждое действие содержало составляющие singleEvents и CombinedEvent, которые обобщали combinedEvent действия среди этих составляющих событий. Когда консолидация была отключена, поле combinedEvent содержало исходное неконсолидированное событие для каждого действия. Любое из этих событий может представлять более одного действия, например создание вместе с общим доступом.

В v2 API стиль ответа не меняется в зависимости от стратегии консолидации, поскольку возвращаемая DriveActivity всегда содержит полный набор действующих лиц, целей и действий.