Data Portability API yöntemlerini çağırın

Data Portability API aşağıdaki yöntemlerden oluşur:

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

portabilityArchive.initiate

Yeni bir veri dışa aktarma işi başlatmak için portabilityArchive.initiate yöntemini çağırırsınız.

Veri arşivi oluşturmak amacıyla bir dışa aktarma işi başlattığınızda, uygun kaynak grubunu istemeniz ve söz konusu kaynak grubu için gerekli kapsamları içeren bir OAuth jetonu sağlamanız gerekir. OAuth jetonu, isteği yetkilendirmek ve hangi kullanıcı verilerinin dışa aktarıldığını belirlemek için kullanılır.

Belirli bir hizmet tarafından desteklenen tüm kaynak gruplarının listesi için ilgili hizmetin şema referans sayfasına bakın.

Örneğin, arama etkinliği verilerini dışa aktarıyorsanız InitiatePortabilityArchive(resources = ["myactivity.search"]) yöntemini çağırırsınız. İstekte şu arama OAuth kapsamıyla ekli bir OAuth jetonu olmalıdır: https://www.googleapis.com/auth/dataportability.myactivity.search.

Tek bir InitiatePortabilityArchive çağrısına birden çok kaynak grubu dahil etmek mümkündür, ancak bu önerilmez. Her kaynak grubu için ayrı InitiatePortabilityArchive isteklerinde bulunarak daha hızlı işleme alabilirsiniz. Birden fazla kaynak grubu istediğinizde, ekli OAuth jetonunda uygun tüm kapsamların eklenmiş olması gerektiğini unutmayın.

Örneğin, hem arama hem de YouTube etkinliği için veri arşivi oluşturmak üzere InitiatePortabilityArchive(resources = ["myactivity.search","myactivity.youtube"]) yöntemini çağırmak yerine şu ayrı çağrıları yapın: InitiatePortabilityArchive(resources = ["myactivity.search"]) ve InitiatePortabilityArchive(resources = ["myactivity.youtube"]).

InitiatePortabilityArchive isteği bir job_id döndürür. Bu iş kimliği, veri arşivinin durumunu almak için kullanılır.

archiveJobs.getPortabilityArchiveState

archiveJobs.getPortabilityArchiveState yöntemi, veri arşivi dışa aktarma işinin mevcut state almak için çağrılır. getPortabilityArchiveState numaralı telefonu aradığınızda job_id şu bilgileri sağlarsınız: GetPortabilityArchiveState(job_id). Ayrıca, initiate isteğinde kullanılan kaynak gruplarıyla eşleşen kapsamlara sahip bir OAuth jetonu da sağlamanız gerekir.

Durum COMPLETE ise verileri indirmek için kullanabileceğiniz imzalı Cloud Storage URL'leri döndürülür. İmzalanmış URL'lerin süresi altı saat sonra dolar ve veriler 14 gün boyunca kullanılabilir.

Veri hacmine bağlı olarak bir arşiv isteğinin tamamlanması birkaç dakika, birkaç saat, hatta birkaç gün sürebilir. Arşivin durumunu beş ila 60 dakikada bir kontrol edebilirsiniz.

resetAuthorization

resetAuthorization yöntemi aşağıdakileri yapar:

  • Kullanıcı tarafından verilen tüm OAuth kapsamlarını iptal eder
  • Uygulamanızın daha önce kullandığınız kaynak grubu için InitiatePortabilityArchive
  • Önceki veri arşivlerine erişimi kaldırır

resetAuthorization yöntemini çağırırken yetkilendirmesini sıfırladığınız kullanıcı için ekli bir OAuth jetonu sağlamanız gerekir.

archiveJobs.retryPortabilityArchive

archiveJobs.getPortabilityArchiveState yönteminin zaten FAILED state döndürdüğü başarısız işleri yeniden denemek için archiveJobs.retryPortabilityArchive yöntemi çağrılır. Bu durum, arka uçtaki geçici bir hatadan kaynaklanabilir. Bu durumda, kullanıcıdan yeni bir OAuth jetonu almadan dışa aktarma işlemini yeniden deneyebilirsiniz. retryPortabilityArchive yöntemini çağırdığınızda job_id ile birlikte geçerli bir OAuth jetonu sağlarsınız. Ardından uç nokta, ilk initiatePortabilityArchive isteğinde istenen kaynak grupları için dışa aktarma işlemi oluşturmaya çalışır. Başarılı olursa bu uç nokta, getPortabilityArchiveState çağrılarında kullanabileceğiniz yeni bir job_id döndürür. Başarısız bir iş en fazla üç kez yeniden denenebilir.

Örneğin:

  1. InitiatePortabilityArchive(resources = ["myactivity.search"]) numaralı telefonu ararsınız ve job_id: 0 alırsınız.

  2. GetPortabilityArchiveState(0) numaralı telefonu aradıktan sonra JobSate: FAILED alırsınız.

  3. Ardından, resources = ["myactivity.search"] karşılığında job_id: 1 almak için RetryPortabilityArchive(0) numaralı telefonu arayabilirsiniz.

  4. Sonrasında, GetPortabilityArchiveState(1) numaralı telefonu aramaya devam edebilirsiniz.