Hướng dẫn này giải thích sự khác biệt giữa API Hoạt động trên Google Drive phiên bản 1 và phiên bản 2, cũng như cách thay đổi ứng dụng phiên bản 1 để hỗ trợ API phiên bản 2.
Ủy quyền
API phiên bản 1 sử dụng phạm vi này:
https://www.googleapis.com/auth/activity
API v2 yêu cầu một trong các phạm vi sau:
https://www.googleapis.com/auth/drive.activity
https://www.googleapis.com/auth/drive.activity.readonly
Tên tài nguyên
Trong API phiên bản 1, giá trị nhận dạng cho các đối tượng như mục và người dùng trên Google Drive là các chuỗi mờ. Trong API v2, các đối tượng này thường được tham chiếu bằng tên tài nguyên. Để biết thêm thông tin, hãy xem Hướng dẫn thiết kế API đám mây.
Thông thường, bạn có thể chuyển đổi các giá trị nhận dạng này. Ví dụ: các mục trên Drive trong API v2 được tham chiếu bằng tên tài nguyên items/ITEM_ID_V1
.
Yêu cầu
Định dạng yêu cầu cho phiên bản 2 tương tự như định dạng của phiên bản 1. Cụ thể, bạn vẫn có thể yêu cầu hoạt động cho một tệp trên Drive hoặc một tệp gốc trên Drive, mặc dù bạn phải định dạng các tham số yêu cầu đó dưới dạng tên tài nguyên bằng cách thêm tiền tố items/
vào các tham số đó.
"Nhóm" hiện được gọi là Hợp nhất và các tham số yêu cầu source
và userId
đã bị xoá.
Ngoài ra, còn có các tuỳ chọn Lọc mới cho phép bạn hạn chế các loại dữ liệu hoạt động được trả về trong phản hồi.
Thao tác
Trong API phiên bản 1, loại hoạt động và dữ liệu liên kết với hoạt động đó nằm trong các trường riêng biệt. Ví dụ: nếu trường primaryEventType
chứa giá trị move
, thì các ứng dụng sẽ giả định rằng trường move
cấp cao nhất được điền sẵn bằng các phần tử mẹ đã thêm và xoá.
Trong API phiên bản 2, các trường này không còn khác biệt nữa. Tin nhắn ActionDetail
chỉ có đúng một trường được đặt. Thuộc tính này biểu thị loại hành động và chứa thông tin chi tiết liên quan đến hành động đó. Ví dụ: ActionDetail
đại diện cho một thao tác di chuyển chỉ đặt trường move
và trường đó liệt kê các thành phần mẹ đã thêm và xoá.
Trường primaryEventType
API phiên bản 1 tương ứng gần đúng với primaryActionDetail
phiên bản 2.
Actors
Trong API phiên bản 1, hoạt động được trả về chứa User
nếu đối tượng là người dùng đã biết và có thể chứa trường cấp cao nhất như fromUserDeletion
đối với các trường hợp đặc biệt.
Trong API phiên bản 2, bạn có thể sử dụng một tập hợp các loại Actor
phong phú hơn và user.knownUser
được điền sẵn khi đối tượng là một người dùng đã biết. Nếu cần thông tin chi tiết về người dùng, ứng dụng của bạn có thể truy vấn thông tin đó từ People API bằng cách truyền trường KnownUser
personName
đến phương thức people.get
.
Mục tiêu
Trong API phiên bản 1, mục tiêu luôn là các mục trên Drive. Trong API phiên bản 2, mục tiêu có thể là các loại đối tượng khác trong Drive. Ví dụ: các thay đổi đối với ổ đĩa có loại mục tiêu là Drive
. Thư mục gốc của một ổ đĩa dùng chung vẫn được trả về (dưới dạng DriveItem
trong trường root
), nhưng đây không phải là mục tiêu trực tiếp của hoạt động. Một khái niệm tương tự áp dụng cho tài nguyên FileComment
, trong đó trường parent
tham chiếu đến mục Drive chứa chuỗi bình luận mục tiêu.
Hoạt động tổng hợp
Trong API phiên bản 1, kiểu phản hồi thay đổi khi bạn đặt chiến lược hợp nhất ("nhóm"). Cụ thể, khi tính năng hợp nhất được bật, mỗi hoạt động sẽ chứa singleEvents
cấu thành và combinedEvent
tóm tắt hoạt động phổ biến giữa các sự kiện cấu thành đó. Khi tính năng hợp nhất bị tắt, trường combinedEvent
sẽ chứa sự kiện chưa hợp nhất ban đầu cho mỗi hoạt động. Bất kỳ sự kiện nào trong số này cũng có thể đại diện cho nhiều hành động, chẳng hạn như tạo cùng với chia sẻ.
Trong API phiên bản 2, kiểu phản hồi không thay đổi dựa trên chiến lược hợp nhất, vì DriveActivity
được trả về luôn chứa đầy đủ các thực thể, mục tiêu và hành động.