Hướng dẫn này giải thích cách thực hiện các yêu cầu trong API Hoạt động trên Google Drive bằng cách sử dụng phương thức activity.query
.
Khóa truy vấn
Có 2 cách để yêu cầu hoạt động: theo mục trong Google Drive hoặc mọi mục trong phân cấp thư mục.
itemName
: Định dạng của khóa này là "items/ITEM_ID". Thông thường, đây là tệp trong Drive. Nếu bạn chỉ định một thư mục cho khoá này, thư mục sẽ hiển thị hoạt động cho thư mục đó như khi được tạo hoặc đổi tên.ancestorName
: Định dạng cho khoá này là "items/ITEM_ID" và phản hồi bao gồm hoạt động trên tất cả các mục trong cây con bên dưới thư mục này.
Khi không có khoá nào được đặt, tuỳ chọn này sẽ mặc định sử dụng ancestorName
của "items/root" và hiển thị hoạt động của tất cả các mục trong Drive của bạn.
Phân trang
Trường pageSize
cho phép bạn yêu cầu số lượng hoạt động gần đúng để trả về trong mỗi phản hồi. Số lượng hoạt động được trả về thực tế sẽ khác nhau, vì vậy, ứng dụng sẽ xử lý số lượng tùy ý trong phản hồi.
Giới hạn kích thước trang. Nếu ứng dụng của bạn cần nhiều hoạt động, hãy đưa ra nhiều yêu cầu bằng cách sử dụng tính năng phân trang thay vì đặt một giá trị lớn cho pageSize
.
Cụ thể, nếu có nhiều hoạt động hơn để tìm nạp so với nội dung có trong phản hồi, thì phản hồi cũng sẽ chứa nextPageToken
. Để truy xuất thêm kết quả, hãy lặp lại cùng một yêu cầu nhưng thêm trường pageToken
với giá trị nextPageToken
từ phản hồi trước đó.
Hợp nhất
Các đối tượng Action
thường được nhóm và trả về trong một tài nguyên DriveActivity
duy nhất. Một số nhóm Action
xảy ra ngẫu nhiên, chẳng hạn như di chuyển một mục vào thư mục dùng chung kích hoạt thay đổi quyền.
Bạn cũng có thể chỉ định ConsolidationStrategy
(đôi khi gọi là tổng hợp hoặc tạo lô) trong yêu cầu. Điều này cho phép các nhóm đối tượng Action
khác có liên quan, chẳng hạn như một số đối tượng chỉnh sửa một mục hoặc một Actor
di chuyển nhiều tệp vào một thư mục Drive mới.
Mặc dù Action
riêng lẻ có một Actor
và một Target
, nhưng sau khi nhóm, DriveActivity
có thể có nhiều diễn viên và nhiều mục tiêu.
Tuy nhiên, ngay cả sau khi nhóm, luôn có một hành động "chính" đại diện cho hành động đó hoặc là hành động quan trọng nhất trong tất cả hành động trong tài nguyên DriveActivity
, tuỳ thuộc vào chiến lược hợp nhất được yêu cầu.
Kết quả là dù bạn đã bật tính năng hợp nhất hay chưa, nhiều ứng dụng chỉ có thể xem nội dung cấp cao nhất của tài nguyên DriveActivity
(chẳng hạn như các diễn viên và mục tiêu tập thể trong primaryActionDetail
) và bỏ qua các thao tác chi tiết trong phản hồi.
Bộ lọc
Bạn có thể hạn chế các hành động có thể được trả về trong tài nguyên DriveActivity
bằng cách tạo một chuỗi filter
trong yêu cầu activity.query
. Có 2 trường được hỗ trợ: time
và detail.action_detail_case
.
Lọc theo thời gian
Để hạn chế các thao tác theo phạm vi thời gian, hãy chỉ định tên trường time
bằng toán tử số trên giá trị ngày, kết hợp bằng dấu "AND" không bắt buộc. Hãy sử dụng mili giây kể từ ngày 1 tháng 1 năm 1970 hoặc định dạng
RFC 3339, chẳng hạn như:
time > 1452409200000 AND time <= 1492812924310
time >= "2016-01-10T01:02:03-05:00"
Lọc theo loại
Để hạn chế theo loại thao tác, hãy áp dụng tên trường detail.action_detail_case
với toán tử "has" (:
). Sử dụng giá trị duy nhất hoặc danh sách các loại thao tác được phép nằm trong dấu ngoặc đơn, phân tách bằng dấu cách. Để tìm danh sách các loại thao tác, hãy xem lại các đối tượng ActionDetail
.
Để loại trừ một loại thao tác khỏi phản hồi, hãy thêm dấu gạch nối (-
) vào đầu chuỗi bộ lọc.
Dưới đây là một số ví dụ về loại hành động:
detail.action_detail_case:RENAME
detail.action_detail_case:(CREATE RESTORE)
-detail.action_detail_case:MOVE
Kết hợp
Bạn có thể kết hợp các điều kiện lọc này trong một chuỗi filter
, chẳng hạn như:
detail.action_detail_case:(CREATE EDIT RESTORE) time > 1452409200000
Yêu cầu mẫu
Yêu cầu 10 hoạt động gần đây nhất cho một mục trên Drive:
{
"itemName": "items/ITEM_ID",
"pageSize": 10
}
Yêu cầu hoạt động hợp nhất cho mọi mục trên Drive bên dưới thư mục đối tượng cấp trên:
{
"ancestorName": "items/ITEM_ID",
"consolidationStrategy": {
"legacy": {}
}
}
Yêu cầu tất cả hành động MOVE
và RENAME
trên một mục trên Drive:
{
"itemName": "items/ITEM_ID",
"filter": "detail.action_detail_case:(MOVE RENAME)"
}
Yêu cầu tất cả hoạt động kể từ ngày 1 tháng 1 năm 2018 theo giờ EST:
{
"ancestorName": "items/root",
"filter": "time >= \"2018-01-01T00:00:00-05:00\""
}
Yêu cầu tất cả hoạt động, ngoại trừ EDIT
hành động, trong tháng 6 năm 2017 theo giờ UTC:
{
"ancestorName": "items/root",
"filter": "time >= \"2018-06-01T00:00:00Z\" time < \"2018-07-01T00:00:00Z\" -detail.action_detail_case:EDIT"
}