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

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

Чтобы узнать больше о разработке приложений для Google Drive, ознакомьтесь с обзором API Google Drive .

События поддерживаемых дисков

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

  • Запрос на доступ создается или обрабатывается для файла.

  • Создается, отменяется, сбрасывается или завершается запрос на утверждение файла. Меняется ответственный за утверждение файла. Ответил ли ответственный за утверждение файла.

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

  • Файл представляет собой:

    • Добавлено в папку или на общий диск.
    • Перемещено в папку или на общий диск.
    • Отредактировано или загружена новая версия.
    • Выброшено или извлечено из мусорного бака.
    • Переименовано (изменено название файла или папки).
  • Ответ создается, редактируется или удаляется в ветке комментариев в файле или в файле на общем диске.

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

To receive events, you specify a Drive resource to monitor, which is called the target resource of the subscription.

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

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

где FILE — это идентификатор в имени ресурса files API Google Drive. Вы можете получить идентификатор из URL-адреса файла или с помощью метода files.list .

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

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

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

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

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

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

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

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

google.workspace.drive.accessproposal.v3.created

accessproposal

Запрос на доступ к файлу рассмотрен.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

В файле создается запись об утверждении.

google.workspace.drive.approval.v3.created

approval

Утверждение по делу аннулируется.

google.workspace.drive.approval.v3.cancelled

approval

Статус одобрения по файлу сбрасывается.

google.workspace.drive.approval.v3.reset

approval

Документ утвержден.

google.workspace.drive.approval.v3.completed

approval

В файле изменено имя лица, ответственного за утверждение.

google.workspace.drive.approval.v3.reviewersChanged

approval

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

google.workspace.drive.approval.v3.responded

approval

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

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 Диске.

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

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

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

В следующей таблице приведены примеры JSON-данных для подписки на ресурс Google Drive. Идентификатор файла содержит буквы, цифры и некоторые специальные символы, структурированные как 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.approval.v3.created

Включает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_ID",
      "dueDate": "1970-01-01T20:42:44.565Z",
      "status": "IN_PROGRESS",
      "reviewerEmailAddresses": ["reviewer1@cymbalgroup.com", "reviewer2@cymbalgroup.com"],
      "initiatorEmailAddress": ["initiator@cymbalgroup.com"]
    }
}
      
Исключает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_ID"
    }
}
      

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

google.workspace.drive.approval.v3.cancelled

Включает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_ID",
      "dueDate": "1970-01-01T20:42:44.565Z",
      "status": "CANCELLED",
      "reviewerEmailAddresses": ["reviewer1@cymbalgroup.com", "reviewer2@cymbalgroup.com"],
      "initiatorEmailAddress": ["initiator@cymbalgroup.com"]
    }
}
      
Исключает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_ID"
    }
}
      

Пользователь сбрасывает подтверждение для файла.

google.workspace.drive.approval.v3.reset

Включает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_ID",
      "dueDate": "1970-01-01T20:42:44.565Z",
      "status": "IN_PROGRESS",
      "reviewerEmailAddresses": ["reviewer1@cymbalgroup.com", "reviewer2@cymbalgroup.com"],
      "initiatorEmailAddress": ["initiator@cymbalgroup.com"]
    }
}
      
Исключает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_ID"
    }
}
      

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

google.workspace.drive.approval.v3.completed

Включает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_ID",
      "dueDate": "1970-01-01T20:42:44.565Z",
      "status": "APPROVED",
      "reviewerEmailAddresses": ["reviewer1@cymbalgroup.com", "reviewer2@cymbalgroup.com"],
      "initiatorEmailAddress": ["initiator@cymbalgroup.com"]
    }
}
      
Исключает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_ID"
    }
}
      

В файле изменено имя лица, ответственного за утверждение.

google.workspace.drive.approval.v3.reviewersChanged

Включает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_ID",
      "dueDate": "1970-01-01T20:42:44.565Z",
      "status": "APPROVED",
      "reviewerEmailAddresses": ["reviewer1@cymbalgroup.com", "reviewer2@cymbalgroup.com"],
      "initiatorEmailAddress": ["initiator@cymbalgroup.com"]
    }
}
      
Исключает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_ID"
    }
}
      

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

google.workspace.drive.approval.v3.responded

Включает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_ID",
      "dueDate": "1970-01-01T20:42:44.565Z",
      "status": "APPROVED",
      "reviewerEmailAddresses": ["reviewer1@cymbalgroup.com", "reviewer2@cymbalgroup.com"],
      "initiatorEmailAddress": ["initiator@cymbalgroup.com"]
    },
    "response": {
      "reviewerEmailAddress": "reviewer1@cymbalgroup.com",
      "response": "DECLINED"
    }
}

      
Исключает данные о ресурсах
{
    "approval": {
      "approvalId": "APPROVAL_ID",
      "targetFileId": "FILE_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 , подписки на общие диски и папки всегда отправляют событие, даже если файл, вызвавший событие, находится на несколько уровней ниже папки, используемой для подписки на диск.
  • Даже если вы создали подписку на папку, вы можете не получать все события в файловой иерархии, поскольку у пользователя или приложения может не быть доступа к ним. В этом случае подписка остается активной, но вы не будете получать события для ресурсов, к которым у вас нет доступа.
  • Поддерживаются подписки на события для всех файлов и папок, кроме корневой папки общих дисков. Подписки поддерживаются только для файлов и папок внутри общих дисков. Изменения, внесенные непосредственно в корневую папку общего диска, не вызовут событий.
  • Пользователь, авторизующий подписку, должен иметь права доступа к файлу, соответствующему событиям, на которые он подписывается.
  • Подписка получает события только для тех ресурсов, к которым пользователь имеет доступ через свою учетную запись Google Workspace или учетную запись Google.