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
  • archiveJobs.cancelPortabilityArchive
  • accessType.check

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 için bir dışa aktarım 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"]) işlevini çağırırsınız. İstekte, arama OAuth kapsamına sahip bir OAuth jetonu eklenmiş olmalıdır: https://www.googleapis.com/auth/dataportability.myactivity.search.

Tek bir InitiatePortabilityArchive çağrısına birden fazla kaynak grubu dahil etmek mümkün olsa da bu önerilmemektedir. Her kaynak grubu için ayrı InitiatePortabilityArchive istekleri göndererek daha hızlı işleme elde edebilirsiniz. Birden fazla kaynak grubu istediğinizde, ekli OAuth jetonuna tüm uygun kapsamların eklenmesi 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"]) 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şivindeki durumu almak için kullanılır.

archiveJobs.getPortabilityArchiveState

Veri arşivi dışa aktarma işinin mevcut durumu almak için archiveJobs.getPortabilityArchiveState yöntemi çağrılır. getPortabilityArchiveState işlevini çağırırken job_id değerini 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. İmzalı URL'lerin süresi altı saat sonra dolar ve veriler 14 gün boyunca kullanılabilir.

Arşivleme isteğinin tamamlanması, veri hacmine bağlı olarak 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 bir kaynak grubu için InitiatePortabilityArchive çağrısı yapmasına izin verir
  • Önceki veri arşivlerine erişimi kaldırır

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

archiveJobs.retryPortabilityArchive

archiveJobs.retryPortabilityArchive yöntemi, archiveJobs.getPortabilityArchiveState yönteminin daha önce FAILED durumu döndürdüğü başarısız işleri yeniden denemek için çağrılır. Bu durum, arka uçta geçici bir hata nedeniyle ortaya çıkabilir. Bu durumda, kullanıcıdan yeni bir OAuth jetonu almadan dışa aktarma işlemini tekrar deneyebilirsiniz. retryPortabilityArchive işlevini çağırdığınızda geçerli bir OAuth jetonuyla birlikte job_id değerini de sağlarsınız. Ardından uç nokta, ilk initiatePortabilityArchive isteğinde istenen aynı 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 olan bir iş en fazla üç kez yeniden denenebilir.

Örneğin:

  1. InitiatePortabilityArchive(resources = ["myactivity.search"]) numaralı telefonu aradığınızda job_id: 0 numaralı telefondan yanıt alırsınız.

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

  3. Ardından resources = ["myactivity.search"] için job_id: 1 almak üzere RetryPortabilityArchive(0) numaralı telefonu arayabilirsiniz.

  4. Ardından GetPortabilityArchiveState(1) numaralı telefona arama yapmaya devam edebilirsiniz.

archiveJobs.cancelPortabilityArchive

archiveJobs.cancelPortabilityArchive yöntemi, kullanıcı verilerine devam eden erişiminiz olduğunda mevcut jetonları iptal etmeden tek bir işi iptal etmek için çağrılır. Bu, bir işe veya kaynağa artık ihtiyaç duyulmadığında ve iş kotanızı sıfırlamak istediğinizde kullanışlıdır. İptal edilecek işin IN_PROGRESS olması ve zamana dayalı erişim ile oluşturulmuş olması gerekir.

Örneğin, myactivity.youtube ve youtube.public_videos için devam eden, zamana dayalı bir işi iptal edebilir ve ardından yalnızca myactivity.youtube için yeni bir iş başlatabilirsiniz.

accessType.check

accessType.check yöntemi, bir OAuth jetonunun bir işi başlatmadan önce zamana dayalı veya tek seferlik erişim için yetki verip vermediğini kontrol etmenizi sağlar. Örneğin, tek seferlik erişim izni veren bir kullanıcının geçmişinin tamamını veya zamana dayalı erişim izni veren bir kullanıcının yalnızca son gününü dışa aktarmak isteyebilirsiniz.

Yanıt iki alan içerir: İstekte kullanılan OAuth jetonu tarafından yetkilendirilmiş tek seferlik ve zamana dayalı veri taşınabilirliği kaynak grubu kimliklerinin listeleri. Kullanıcılar, jeton verme işleminde erişim türlerini karıştıramaz ancak gelecekte bu davranışı her zaman göremeyebilirsiniz.