На этой странице описаны события 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 — это идентификатор в имени ресурса | Пользователь, авторизующий подписку, должен иметь права доступа к файлу в рамках подписки, относящемуся к событию подписки. |
| Общий диск | //drive.googleapis.com/drives/ DRIVE где DRIVE — это идентификатор в имени ресурса Drive API | Подписка получает события только для тех элементов на общем диске, к которым пользователь является участником через свою учетную запись 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 Диске.
Когда ваша подписка на Google Workspace получает событие из Google Диска, поле data содержит полезную нагрузку события. Эта полезная нагрузка содержит информацию об измененном ресурсе Google Workspace. Например, если вы подписаны на события, связанные с файлами, полезная нагрузка для этих событий будет содержать информацию об измененном ресурсе files .
Данные ресурсов в полезной нагрузке события
При создании подписки вы можете указать, хотите ли вы, чтобы полезная нагрузка включала подробную информацию о ресурсе или только его имя. Например, если вы хотите получать события о файлах в Google Диск, вы можете указать, какие поля ресурса files вы хотите включить в полезную нагрузку события.
В следующей таблице приведены примеры JSON-данных для подписки на ресурс Google Drive. Идентификатор файла содержит буквы, цифры и некоторые специальные символы, структурированные как files/^[01][0-9a-zA-Z_-]+$/ . Например, files/1aaabbbAAABBB111222-_ . Для каждого события, полученного подпиской, полезная нагрузка отображается в поле data события:
| Пример | Тип события | JSON-данные |
|---|---|---|
Пользователь создает предложение о доступе к файлу. | | Включает данные о ресурсах
{
"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"
}
]
}
|
Пользователь обрабатывает запрос на доступ к файлу. | | Включает данные о ресурсах
{
"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"
}
]
}
|
Пользователь создает запрос на утверждение файла. | | Включает данные о ресурсах
{
"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"
}
}
|
Пользователь отменяет утверждение файла. | | Включает данные о ресурсах
{
"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"
}
}
|
Пользователь сбрасывает подтверждение для файла. | | Включает данные о ресурсах
{
"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"
}
}
|
Пользователь завершает процедуру утверждения файла. | | Включает данные о ресурсах
{
"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"
}
}
|
В файле изменено имя лица, ответственного за утверждение. | | Включает данные о ресурсах
{
"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"
}
}
|
Сотрудник, проводивший проверку на утверждение, ответил на запрос об утверждении файла. | | Включает данные о ресурсах
{
"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"
}
}
|
Пользователь оставляет комментарий к файлу. | | Включает данные о ресурсах
{
"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"
}
}
|
Пользователь редактирует комментарий к файлу. | | Включает данные о ресурсах
{
"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"
}
}
|
Пользователь разрешает комментарий к файлу. | | Включает данные о ресурсах
{
"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"
}
}
|
Пользователь повторно открывает комментарий к файлу. | | Включает данные о ресурсах
{
"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"
}
}
|
Пользователь удаляет комментарий к файлу. | | Включает данные о ресурсах
{
"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"
}
}
|
Пользователь добавляет файл в папку или на общий диск. | | Включает данные о ресурсах
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Исключает данные о ресурсах
{
"file": {
"id": "FILE_ID"
}
}
|
Пользователь перемещает файл в папку или на общий диск. | | Включает данные о ресурсах
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Исключает данные о ресурсах
{
"file": {
"id": "FILE_ID"
}
}
|
Пользователь редактирует файл или загружается новая версия. | | Включает данные о ресурсах
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Исключает данные о ресурсах
{
"file": {
"id": "FILE_ID"
}
}
|
Пользователь удаляет файл. | | Включает данные о ресурсах
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Исключает данные о ресурсах
{
"file": {
"id": "FILE_ID"
}
}
|
Пользователь удаляет файл из корзины. | | Включает данные о ресурсах
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Исключает данные о ресурсах
{
"file": {
"id": "FILE_ID"
}
}
|
Пользователь восстанавливает файл из корзины. | | Включает данные о ресурсах
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Исключает данные о ресурсах
{
"file": {
"id": "FILE_ID"
}
}
|
Пользователь переименовывает файл или папку. | | Включает данные о ресурсах
{
"file": {
"id": "FILE_ID",
"parent": "PARENT_ID",
"version": "63",
"mimeType": "application/vnd.google-apps.document"
}
}
Исключает данные о ресурсах
{
"file": {
"id": "FILE_ID"
}
}
|
Пользователь оставляет комментарий-ответ в ветке комментариев. | | Включает данные о ресурсах
{
"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"
}
}
|
Пользователь редактирует ответ на комментарий в ветке комментариев. | | Включает данные о ресурсах
{
"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"
}
}
|
Пользователь удаляет свой ответ на комментарий в ветке комментариев. | | Включает данные о ресурсах
{
"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.