Подпишитесь на события Google Диска

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

Подробнее о разработке приложений для Диска см. в обзоре API Google Диска .

Поддерживаемые события Drive

Подписки на Google Workspace позволяют получать события о следующих типах изменений на Диске:

  • Файл — это:
    • Добавлено в папку или на общий диск.
    • Перемещено в папку или на общий диск.
    • Отредактировано или загружена новая версия.
    • Выброшено или удалено из корзины.
  • Предложение о доступе создано или разрешено для файла.

Ресурсы, которые вы можете отслеживать на предмет событий

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

API событий Google Workspace поддерживает следующие целевые ресурсы для Диска:

Целевой ресурс Формат Ограничения (если применимо)
Файл //drive.googleapis.com/files/ FILE

Где FILE — идентификатор в имени ресурса files API Диска. Идентификатор можно получить из URL-адреса файла или с помощью метода files.list .

Пользователь, который авторизует подписку, должен иметь разрешение на файл в рамках подписки, относящееся к событию подписки.
Общий диск //drive.googleapis.com/drives/ DRIVE

Где DRIVE — это идентификатор в имени ресурса drives API. Идентификатор можно получить из URL-адреса диска или с помощью метода drives.list .

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

Типы событий для создания подписок

При создании подписки на ресурс Диска вы используете поле eventTypes[] чтобы указать, какие типы событий вы хотите получать. Типы событий форматируются в соответствии со спецификацией CloudEvents , например, google.workspace. APPLICATION . RESOURCE . VERSION . ACTION .

Например, чтобы получать события о создании файла в папке или на общем диске, укажите файл в качестве целевого ресурса, а тип события — google.workspace.drive.file.v3.created . Чтобы получать события о создании предложения доступа для файла, укажите предложение доступа в качестве целевого ресурса, а тип события — google.workspace.drive.accessproposal.v3.created . Подробнее о работе событий см. в статье Структура событий Google Workspace .

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

Тип события Формат Данные о ресурсах
Подписки на файлы
Файл добавляется в папку или на общий диск.

google.workspace.drive.file.v3.created

file

Файл перемещается в папку или на общий диск.

google.workspace.drive.file.v3.moved

file

Файл редактируется или загружается новая версия.

google.workspace.drive.file.v3.contentChanged

file

Файл удален.

google.workspace.drive.file.v3.deleted

file

Файл удален.

google.workspace.drive.file.v3.trashed

file

Файл удален из корзины.

google.workspace.drive.file.v3.untrashed

file

Для файла создается предложение о доступе.

google.workspace.drive.accessproposal.v3.created

accessproposal

Предложение о доступе решено по файлу.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Подписки на общие диски
Файл добавляется в папку или на общий диск.

google.workspace.drive.file.v3.created

file

Файл перемещается в папку или на общий диск.

google.workspace.drive.file.v3.moved

file

Файл редактируется или загружается новая версия.

google.workspace.drive.file.v3.contentChanged

file

Файл удален.

google.workspace.drive.file.v3.deleted

file

Файл удален.

google.workspace.drive.file.v3.trashed

file

Файл удален из корзины.

google.workspace.drive.file.v3.untrashed

file

Для файла создается предложение о доступе.

google.workspace.drive.accessproposal.v3.created

accessproposal

Предложение о доступе решено по файлу.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Данные о событиях

В этом разделе описываются данные событий и примеры полезной нагрузки для событий на Диске.

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

Данные о ресурсах в полезной нагрузке события

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

В следующей таблице приведены примеры полезных данных JSON для подписки на ресурс Диска. Идентификатор файла содержит буквы, цифры и некоторые специальные символы, структурированные как files/^[01][0-9a-zA-Z_-]+$/ . Например, files/1aaabbbAAABBB111222-_ . Для каждого события, получаемого подпиской, полезные данные отображаются в поле data события:

Пример Тип события полезная нагрузка JSON

Пользователь добавляет файл в папку или на общий диск.

google.workspace.drive.file.v3.created

Включает данные о ресурсах
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Исключает данные о ресурсах
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Пользователь перемещает файл в папку или на общий диск.

google.workspace.drive.file.v3.moved

Включает данные о ресурсах
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Исключает данные о ресурсах
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Пользователь редактирует файл или загружается новая версия.

google.workspace.drive.file.v3.contentChanged

Включает данные о ресурсах
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Исключает данные о ресурсах
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Пользователь удаляет файл.

google.workspace.drive.file.v3.deleted

Включает данные о ресурсах
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Исключает данные о ресурсах
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Пользователь удаляет файл.

google.workspace.drive.file.v3.trashed

Включает данные о ресурсах
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Исключает данные о ресурсах
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Пользователь восстанавливает файл из корзины.

google.workspace.drive.file.v3.untrashed

Включает данные о ресурсах
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Исключает данные о ресурсах
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Пользователь создает предложение по доступу к файлу.

google.workspace.drive.accessproposal.v3.created

Включает данные о ресурсах
{
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "63",
        "requesterEmailAddress": "application/vnd.google-apps.document",
        "requestMessage": "grant me access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
}
      
Исключает данные о ресурсах
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Пользователь разрешает предложение о доступе к файлу.

google.workspace.drive.accessProposal.v3.resolved

Включает данные о ресурсах
{
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "63",
        "requesterEmailAddress": "application/vnd.google-apps.document",
        "requestMessage": "resolve access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
}
      
Исключает данные о ресурсах
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Ограничения

  • Если логическое поле includeDescendants в DriveOptions имеет значение true , подписки Drive на общих дисках и папках всегда отправляют событие, даже если файл, вызвавший событие, находится на много уровней ниже папки, используемой для подписки Drive.
  • Даже если вы создали подписку на папку, вы можете не получать все события в иерархии файлов, поскольку у пользователя или приложения может быть не предоставлен к ним доступ. В этом случае подписка останется активной, но вы не будете получать события для ресурсов, к которым у вас нет доступа.
  • Подписки поддерживаются для событий во всех файлах и папках, за исключением событий в корневой папке общих дисков. Подписки поддерживаются только для файлов и папок внутри общих дисков. Изменения, вносимые непосредственно в корневую папку общих дисков, не приводят к возникновению событий.
  • Пользователь, авторизующий подписку, должен иметь разрешение на файл, соответствующий событиям, на которые он подписывается.
  • Подписка получает только события для ресурсов, к которым пользователь имеет доступ через свою учетную запись Google Workspace или учетную запись Google.