Di chuyển từ Drive Activity API phiên bản 1

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 sourceuserId đã 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.