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"])
và 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ụ:
Bạn gọi
InitiatePortabilityArchive(resources = ["myactivity.search"])
và sẽ nhận đượcjob_id: 0
.Sau khi gọi
GetPortabilityArchiveState(0)
, bạn sẽ nhận đượcJobSate: FAILED
.Sau đó, bạn có thể gọi
RetryPortabilityArchive(0)
để nhậnjob_id: 1
choresources = ["myactivity.search"]
.Sau đó, bạn có thể tiếp tục gọi điện đến
GetPortabilityArchiveState(1)
.