Подпишитесь на события 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.accessproposal.v3.created

accessproposal

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

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Комментарий создается для файла или файла на общем диске.

google.workspace.drive.comment.v3.created

comment

Комментарий редактируется к файлу или файлу на общем диске.

google.workspace.drive.comment.v3.edited

comment

Комментарий разрешен к файлу или файлу на общем диске.

google.workspace.drive.comment.v3.resolved

comment

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

google.workspace.drive.comment.v3.reopened

comment

Комментарий удален к файлу или файлу на общем диске.

google.workspace.drive.comment.v3.deleted

comment

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

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.file.v3.renamed

file

Ответ создается в ветке комментариев в файле или в файле на общем диске.

google.workspace.drive.reply.v3.created

reply

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

google.workspace.drive.reply.v3.edited

reply

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

google.workspace.drive.reply.v3.deleted

reply

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

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

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

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

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

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

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

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

google.workspace.drive.accessproposal.v3.created

Включает данные о ресурсах
{
    "accessProposal": [
      {
        "file_id": "FILE_ID",
        "proposalId": "PROPOSAL_ID",
        "recipientEmailAddress": "alex@altostrat.com",
        "requesterEmailAddress": "kai@cymbalgroup.com",
        "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": "alex@altostrat.com",
        "requesterEmailAddress": "kai@cymbalgroup.com",
        "requestMessage": "resolve access to this file",
        "rolesAndViews": [
          {
            "role": "writer",
            "view": "published"
          }
        ]
      }
    ]
}
      
Исключает данные о ресурсах
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

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

google.workspace.drive.comment.v3.created

Включает данные о ресурсах
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Исключает данные о ресурсах
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

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

google.workspace.drive.comment.v3.edited

Включает данные о ресурсах
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Исключает данные о ресурсах
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Пользователь разрешает комментарий к файлу.

google.workspace.drive.comment.v3.resolved

Включает данные о ресурсах
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Исключает данные о ресурсах
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

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

google.workspace.drive.comment.v3.reopened

Включает данные о ресурсах
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Исключает данные о ресурсах
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

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

google.workspace.drive.comment.v3.deleted

Включает данные о ресурсах
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Исключает данные о ресурсах
{
    "comment": {
      "id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

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

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.file.v3.renamed

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

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

google.workspace.drive.reply.v3.created

Включает данные о ресурсах
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Исключает данные о ресурсах
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Пользователь редактирует ответ на комментарий в ветке комментариев.

google.workspace.drive.reply.v3.edited

Включает данные о ресурсах
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Исключает данные о ресурсах
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Пользователь удаляет ответ на комментарий в ветке комментариев.

google.workspace.drive.reply.v3.deleted

Включает данные о ресурсах
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID",
      "mentioned_email_addresses": ["alex@altostrat.com", "kai@cymbalgroup.com"],
      "assignee_email_address": "yuri@altostrat.com"
    }
}
      
Исключает данные о ресурсах
{
    "reply": {
      "id": "REPLY_ID",
      "comment_id": "COMMENT_ID",
      "file_id": "FILE_ID"
    }
}
      

Ограничения

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