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:
InitiatePortabilityArchive(resources = ["myactivity.search"])
numaralı telefonu aradığınızdajob_id: 0
numaralı telefondan yanıt alırsınız.GetPortabilityArchiveState(0)
numarayı aradıktan sonraJobSate: FAILED
alırsınız.Ardından
resources = ["myactivity.search"]
içinjob_id: 1
almak üzereRetryPortabilityArchive(0)
numaralı telefonu arayabilirsiniz.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.