Phương thức API Khả năng di chuyển dữ liệu cuộc gọi

API Khả năng di chuyển dữ liệu bao gồm các phương thức sau:

  • portabilityArchive.initiate
  • archiveJobs.getPortabilityArchiveState
  • resetAuthorization
  • archiveJobs.retryPortabilityArchive

portabilityArchive.initiate

Bạn gọi phương thức portabilityArchive.initiate để bắt đầu một công việc xuất dữ liệu mới.

Khi bắt đầu lệnh xuất để tạo kho lưu trữ dữ liệu, bạn phải yêu cầu nhóm tài nguyên phù hợp và cung cấp mã thông báo OAuth có các phạm vi bắt buộc cho nhóm tài nguyên đó. Mã thông báo OAuth được dùng để uỷ quyền yêu cầu và xác định dữ liệu người dùng nào đang được xuất.

Để biết danh sách tất cả các nhóm tài nguyên được một dịch vụ cụ thể hỗ trợ, hãy xem trang tham chiếu giản đồ cho dịch vụ đó.

Ví dụ: nếu đang xuất dữ liệu về hoạt động tìm kiếm, bạn sẽ gọi InitiatePortabilityArchive(resources = ["myactivity.search"]). Yêu cầu phải đính kèm mã thông báo OAuth với phạm vi OAuth tìm kiếm: https://www.googleapis.com/auth/dataportability.myactivity.search.

Mặc dù có thể đưa nhiều nhóm tài nguyên vào một lệnh gọi InitiatePortabilityArchive, nhưng bạn không nên làm như vậy. Bạn có thể xử lý nhanh hơn bằng cách tạo các yêu cầu InitiatePortabilityArchive riêng biệt cho từng nhóm tài nguyên. Xin lưu ý rằng khi bạn yêu cầu nhiều nhóm tài nguyên, mã thông báo OAuth đính kèm phải đính kèm tất cả các phạm vi thích hợp.

Ví dụ: thay vì gọi InitiatePortabilityArchive(resources = ["myactivity.search","myactivity.youtube"]) để tạo kho lưu trữ dữ liệu cho cả hoạt động tìm kiếm và YouTube, hãy thực hiện các lệnh gọi riêng biệt sau: InitiatePortabilityArchive(resources = ["myactivity.search"])InitiatePortabilityArchive(resources = ["myactivity.youtube"]).

Yêu cầu InitiatePortabilityArchive trả về một job_id. Mã công việc này được dùng để truy xuất trạng thái của kho lưu trữ dữ liệu.

archiveJobs.getPortabilityArchiveState

Phương thức archiveJobs.getPortabilityArchiveState được gọi để truy xuất state hiện tại của công việc xuất kho lưu trữ dữ liệu. Khi gọi getPortabilityArchiveState, bạn sẽ cung cấp job_id: GetPortabilityArchiveState(job_id). Bạn cũng phải cung cấp mã thông báo OAuth có các phạm vi phù hợp với nhóm tài nguyên được dùng trong yêu cầu initiate.

Nếu trạng thái là COMPLETE, các URL Cloud Storage đã ký sẽ được trả về và bạn có thể dùng để tải dữ liệu xuống. Các URL đã ký sẽ hết hạn sau 6 giờ và dữ liệu sẽ tồn tại trong 14 ngày.

Yêu cầu lưu trữ có thể mất vài phút, vài giờ hoặc thậm chí vài ngày để hoàn tất tuỳ thuộc vào lượng dữ liệu. Bạn có thể kiểm tra trạng thái của bản lưu trữ từ 5 đến 60 phút một lần.

resetAuthorization

Phương thức resetAuthorization thực hiện những việc sau:

  • Thu hồi tất cả phạm vi OAuth do người dùng cấp
  • Cho phép ứng dụng của bạn gọi InitiatePortabilityArchive cho một nhóm tài nguyên mà bạn đã dùng trước đó
  • Xoá quyền truy cập vào các bản lưu trữ dữ liệu trước đây

Khi gọi resetAuthorization, bạn phải cung cấp mã thông báo OAuth đính kèm cho người dùng có quyền mà bạn đang đặt lại.

archiveJobs.retryPortabilityArchive

Phương thức archiveJobs.retryPortabilityArchive được gọi để thử lại các công việc không thành công trong đó phương thức archiveJobs.getPortabilityArchiveState đã trả về state của FAILED. Điều này có thể xảy ra do lỗi tạm thời trên phần phụ trợ. Trong trường hợp đó, bạn có thể thử xuất lại mà không cần lấy mã thông báo OAuth mới từ người dùng. Khi gọi retryPortabilityArchive, bạn cung cấp job_id cùng với mã thông báo OAuth hợp lệ. Sau đó, điểm cuối sẽ cố gắng xuất dữ liệu cho chính các nhóm tài nguyên được yêu cầu trong yêu cầu initiatePortabilityArchive ban đầu. Nếu thành công, điểm cuối này sẽ trả về một job_id mới mà bạn có thể sử dụng trong các lệnh gọi đến getPortabilityArchiveState. Bạn có thể thử lại một công việc không thành công tối đa 3 lần.

Ví dụ:

  1. Bạn gọi InitiatePortabilityArchive(resources = ["myactivity.search"]) và sẽ nhận được job_id: 0.

  2. Sau khi gọi GetPortabilityArchiveState(0), bạn sẽ nhận được JobSate: FAILED.

  3. Sau đó, bạn có thể gọi RetryPortabilityArchive(0) để nhận job_id: 1 cho resources = ["myactivity.search"].

  4. Sau đó, bạn có thể tiếp tục gọi điện đến GetPortabilityArchiveState(1).