Đăng ký nhận các sự kiện trên Google Drive

Trang này mô tả các sự kiện trên Google Drive mà ứng dụng của bạn có thể đăng ký nhận thông báo bằng Google Workspace Events API. Sau khi quyết định loại sự kiện bạn cần, hãy tạo một lượt đăng ký để bắt đầu nhận sự kiện từ Drive.

Để tìm hiểu thêm về cách phát triển ứng dụng cho Drive, hãy xem bài viết Tổng quan về Google Drive API.

Các sự kiện được hỗ trợ trên Drive

Gói thuê bao Google Workspace cho phép bạn nhận các sự kiện về những loại thay đổi sau đây trong Drive:

  • Tệp là:
    • Được thêm vào một thư mục hoặc bộ nhớ dùng chung.
    • Đã di chuyển đến một thư mục hoặc bộ nhớ dùng chung.
    • Bạn tải bản sửa đổi mới hoặc đã chỉnh sửa lên.
    • Đã chuyển vào thùng rác hoặc xoá khỏi thùng rác.
  • Đề xuất cấp quyền truy cập được tạo hoặc giải quyết trên một tệp.

Tài nguyên mà bạn có thể theo dõi sự kiện

Để nhận sự kiện, bạn chỉ định một tài nguyên trên Drive để theo dõi. Tài nguyên này được gọi là tài nguyên đích của gói thuê bao.

Google Workspace Events API hỗ trợ các tài nguyên mục tiêu sau đây cho Drive:

Tài nguyên đích đến Định dạng Các điểm hạn chế (nếu có)
Tệp //drive.googleapis.com/files/FILE

trong đó FILE là mã nhận dạng trong tên tài nguyên của tài nguyên files Drive API. Bạn có thể lấy mã nhận dạng từ URL của tệp hoặc bằng cách sử dụng phương thức files.list.

Người dùng uỷ quyền đăng ký phải có quyền đối với tệp trong gói thuê bao liên quan đến sự kiện đăng ký.
Bộ nhớ dùng chung //drive.googleapis.com/drives/DRIVE

trong đó DRIVE là mã nhận dạng trong tên tài nguyên của tài nguyên drives Drive API. Bạn có thể lấy mã nhận dạng từ URL của ổ đĩa hoặc bằng cách sử dụng phương thức drives.list.

Dịch vụ đăng ký chỉ nhận các sự kiện cho những mục trong ổ đĩa dùng chung mà người dùng là thành viên thông qua Tài khoản Google Workspace hoặc Tài khoản Google của họ.

Các loại sự kiện để tạo gói thuê bao

Khi tạo một lượt đăng ký nhận thông báo về một tài nguyên trên Drive, bạn sẽ dùng trường eventTypes[] để chỉ định những loại sự kiện mà bạn muốn nhận. Các loại sự kiện được định dạng theo quy cách CloudEvents, chẳng hạn như google.workspace.APPLICATION.RESOURCE.VERSION.ACTION.

Ví dụ: để nhận sự kiện về việc tạo một tệp trong một thư mục hoặc ổ đĩa dùng chung, bạn chỉ định tệp đó làm tài nguyên đích và loại sự kiện là google.workspace.drive.file.v3.created. Để nhận các sự kiện về đề xuất cấp quyền truy cập được tạo trên một tệp, bạn chỉ định đề xuất cấp quyền truy cập làm tài nguyên đích và loại sự kiện là google.workspace.drive.accessproposal.v3.created. Để tìm hiểu thêm về cách hoạt động của sự kiện, hãy xem Cấu trúc của các sự kiện trên Google Workspace.

Bảng sau đây cho biết những loại sự kiện được hỗ trợ cho việc đăng ký nhận thông báo về các tài nguyên trên Drive:

Loại sự kiện Định dạng Dữ liệu tài nguyên
Đăng ký nhận thông báo về tệp  
Một tệp được thêm vào thư mục hoặc bộ nhớ dùng chung.

google.workspace.drive.file.v3.created

file

Một tệp được di chuyển đến một thư mục hoặc bộ nhớ dùng chung.

google.workspace.drive.file.v3.moved

file

Một tệp được chỉnh sửa hoặc một bản sửa đổi mới được tải lên.

google.workspace.drive.file.v3.contentChanged

file

Một tệp bị xoá.

google.workspace.drive.file.v3.deleted

file

Một tệp bị chuyển vào thùng rác.

google.workspace.drive.file.v3.trashed

file

Một tệp bị xoá khỏi thùng rác.

google.workspace.drive.file.v3.untrashed

file

Đề xuất cấp quyền truy cập được tạo trên một tệp.

google.workspace.drive.accessproposal.v3.created

accessproposal

Đề xuất cấp quyền truy cập được giải quyết trên một tệp.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Đăng ký theo dõi bộ nhớ dùng chung  
Một tệp được thêm vào thư mục hoặc bộ nhớ dùng chung.

google.workspace.drive.file.v3.created

file

Một tệp được di chuyển đến một thư mục hoặc bộ nhớ dùng chung.

google.workspace.drive.file.v3.moved

file

Một tệp được chỉnh sửa hoặc một bản sửa đổi mới được tải lên.

google.workspace.drive.file.v3.contentChanged

file

Một tệp bị xoá.

google.workspace.drive.file.v3.deleted

file

Một tệp bị chuyển vào thùng rác.

google.workspace.drive.file.v3.trashed

file

Một tệp bị xoá khỏi thùng rác.

google.workspace.drive.file.v3.untrashed

file

Đề xuất cấp quyền truy cập được tạo trên một tệp.

google.workspace.drive.accessproposal.v3.created

accessproposal

Đề xuất cấp quyền truy cập được giải quyết trên một tệp.

google.workspace.drive.accessproposal.v3.resolved

accessproposal

Dữ liệu sự kiện

Phần này mô tả dữ liệu sự kiện và các tải trọng mẫu cho các sự kiện trong Drive.

Khi gói thuê bao Google Workspace của bạn nhận được một sự kiện từ Drive, trường data sẽ chứa tải trọng cho sự kiện đó. Tải trọng này có thông tin về tài nguyên Google Workspace đã thay đổi. Ví dụ: nếu bạn đã đăng ký nhận sự kiện tệp, thì tải trọng cho các sự kiện này sẽ chứa thông tin về tài nguyên file đã thay đổi.

Dữ liệu tài nguyên trong tải trọng sự kiện

Khi tạo một gói thuê bao, bạn có thể chỉ định xem bạn muốn tải trọng bao gồm thông tin chi tiết về tài nguyên hay chỉ tên của tài nguyên. Ví dụ: nếu muốn nhận các sự kiện về tệp trên Drive, bạn có thể chỉ định những trường của tài nguyên files mà bạn muốn nhận trong tải trọng sự kiện.

Bảng sau đây cung cấp ví dụ về tải trọng JSON cho một gói thuê bao đối với tài nguyên Drive. Mã nhận dạng tệp chứa chữ cái, số và một số ký tự đặc biệt có cấu trúc là files/^[01][0-9a-zA-Z_-]+$/. Ví dụ: files/1aaabbbAAABBB111222-_. Đối với mỗi sự kiện mà gói thuê bao nhận được, tải trọng sẽ xuất hiện trong trường data của sự kiện:

Ví dụ Loại sự kiện Tải trọng JSON

Người dùng thêm một tệp vào thư mục hoặc bộ nhớ dùng chung.

google.workspace.drive.file.v3.created

Bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Không bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Người dùng di chuyển một tệp đến một thư mục hoặc bộ nhớ dùng chung.

google.workspace.drive.file.v3.moved

Bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Không bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Người dùng chỉnh sửa tệp hoặc một phiên bản mới được tải lên.

google.workspace.drive.file.v3.contentChanged

Bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Không bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Người dùng xoá một tệp.

google.workspace.drive.file.v3.deleted

Bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Không bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Người dùng chuyển một tệp vào thùng rác.

google.workspace.drive.file.v3.trashed

Bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Không bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Người dùng khôi phục tệp trong thùng rác.

google.workspace.drive.file.v3.untrashed

Bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID",
      "parent": "PARENT_ID",
      "version": "63",
      "mimeType": "application/vnd.google-apps.document"
    }
}
      
Không bao gồm dữ liệu tài nguyên
{
    "file": {
      "id": "FILE_ID"
    }
}
      

Người dùng tạo một đề xuất cấp quyền truy cập cho một tệp.

google.workspace.drive.accessproposal.v3.created

Bao gồm dữ liệu tài nguyên
{
    "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"
          }
        ]
      }
    ]
}
      
Không bao gồm dữ liệu tài nguyên
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Người dùng giải quyết đề xuất cấp quyền truy cập vào một tệp.

google.workspace.drive.accessProposal.v3.resolved

Bao gồm dữ liệu tài nguyên
{
    "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"
          }
        ]
      }
    ]
}
      
Không bao gồm dữ liệu tài nguyên
{
    "accessProposal": [
      {
        "proposalId": "PROPOSAL_ID"
      }
    ]
}
      

Các điểm hạn chế

  • Khi trường boolean includeDescendants trong DriveOptionstrue, các sự kiện đăng ký trên Drive đối với bộ nhớ dùng chung và thư mục luôn gửi một sự kiện, ngay cả khi tệp kích hoạt sự kiện đó nằm sâu nhiều lớp bên dưới thư mục được dùng cho sự kiện đăng ký trên Drive.
  • Mặc dù đã tạo một chế độ đăng ký trên một thư mục, nhưng bạn có thể không nhận được tất cả các sự kiện trong hệ thống phân cấp tệp vì người dùng hoặc ứng dụng có thể không được cấp quyền truy cập vào các sự kiện đó. Trong trường hợp này, gói thuê bao vẫn hoạt động nhưng bạn sẽ không nhận được bất kỳ sự kiện nào cho những tài nguyên mà bạn không có quyền truy cập.
  • Bạn có thể đăng ký nhận thông báo về các sự kiện trên mọi tệp và thư mục, nhưng không thể đăng ký nhận thông báo về các sự kiện trên thư mục gốc của bộ nhớ dùng chung. Tính năng đăng ký chỉ được hỗ trợ cho các tệp và thư mục bên trong bộ nhớ dùng chung. Những thay đổi được thực hiện trực tiếp đối với thư mục gốc của bộ nhớ dùng chung sẽ không kích hoạt sự kiện.
  • Người dùng uỷ quyền đăng ký phải có quyền đối với tệp tương ứng với các sự kiện mà họ đăng ký.
  • Dịch vụ đăng ký chỉ nhận các sự kiện cho những tài nguyên mà người dùng có quyền truy cập thông qua tài khoản Google Workspace hoặc Tài khoản Google của họ.