Bu hızlı başlangıç kılavuzunda, hesabınız için bir OAuth jetonu alır ve dışa aktarılan verileri filtrelemek üzere zaman damgaları kullanarak Veri Taşınabilirliği API uç noktalarına istek gönderirsiniz.
Bu hızlı başlangıç kılavuzunda, Data Portability API'nin zamana dayalı erişim ile nasıl kullanılacağı ve desteklenen kaynaklar için zaman filtrelerinin nasıl uygulanacağı ele alınmaktadır. Kullanıcı verilerine zamana dayalı erişim hakkında daha fazla bilgi için Zamana Dayalı Erişimi Kullanma başlıklı makaleyi inceleyin.
Öğrenecekleriniz
Bu hızlı başlangıç kılavuzunda şunları öğreneceksiniz:
- Yalnızca son dışa aktarma işleminizden bu yana yeni verileri dışa aktarmak için
InitiatePortabilityArchive
uç noktasına kimliği doğrulanmış yinelenen istekler gönderin. - Yalnızca son 6 aya ait verileri dışa aktarmak için
InitiatePortabilityArchive
uç noktasına kimlik doğrulaması yapılmış bir istek gönderin. - Yalnızca belirli bir dönemdeki verileri dışa aktarmak için
InitiatePortabilityArchive
uç noktasına kimlik doğrulaması yapılmış bir istek gönderin.
Ön koşullar
Bu hızlı başlangıç kılavuzunu çalıştırmak için:
- Data Portability API'nin bulunduğunuz yerdeki kullanıcılar tarafından kullanılabildiğini doğrulayın. Desteklenen ülke ve bölgelerin listesi için "Verilerinizin bir kopyasını üçüncü taraflarla paylaşma" sayfasındaki Sık Sorulan Sorular bölümüne bakın.
- Data Portability API'nin kurulum adımlarını tamamlayın.
- JavaScript web uygulamaları için OAuth'u yapılandırma adımlarını uygulayın. Üretimde normalde web sunucusu uygulamaları için OAuth akışı gibi farklı bir akış kullanırsınız.
Bu hızlı başlangıç kılavuzunda, basitlik açısından JavaScript web uygulaması akışı kullanılmaktadır.
- Yetkilendirme kimlik bilgilerinizi oluştururken OAuth 2.0 istemci kimliğinizi ve yetkili yönlendirme URI'nizi (ör. https://google.com) not edin. Hızlı başlangıç kılavuzunun ilerleyen bölümlerinde bu bilgilere ihtiyacınız olacaktır.
- Data Portability API için kapsamları yapılandırırken bu hızlı başlangıç kılavuzunun
myactivity.search
kaynak grubunu kullandığını unutmayın: https://www.googleapis.com/auth/dataportability.myactivity.search. - Erişime izin vermek istediğiniz süreyi seçerken zamana dayalı erişim ile zaman filtrelemeyi test etmek için 30 gün'ü seçmeniz gerekir. (Zaman filtreleri tek seferlik erişimde de çalışır.)
- OAuth jetonu alın.
- Kuruluşunuzun sahibi olduğu veya kontrol ettiği bir hesaba erişme Bu hesaptaki arama etkinliği verileri bu hızlı başlangıç kılavuzunda dışa aktarılır.
OAuth jetonu alma
Bu hızlı başlangıç kılavuzunda, bir URL kullanarak OAuth jetonu almak için yetkilendirme isteği gönderirsiniz. Bu işlem, JavaScript web uygulamaları için akışı kullanır. Bu akış, yenileme jetonu döndürmez.
Üretim uygulaması için genellikle, isteğe bağlı olarak erişim jetonları oluşturmak üzere kullanılabilecek bir yenileme jetonu almak için bir OAuth akışı kullanırsınız. Buna örnek olarak sunucu tarafı web uygulamaları akışı verilebilir.
OAuth jetonu almak için:
Aşağıdaki gibi bir URL oluşturun.
https://accounts.google.com/o/oauth2/v2/auth? client_id=client_id& redirect_uri=redirect_uri& response_type=token& scope=https://www.googleapis.com/auth/dataportability.myactivity.search& state=developer-specified-value
URL'de:
client_id
, OAuth istemci kimliğinizdir.redirect_uri
, yetkilendirilmiş yönlendirme URI'nizdir (ör. https://google.com).
Bu hızlı başlangıç kılavuzunun URL'sinde arama etkinliği kapsamının kullanıldığına dikkat edin. Zaman filtrelerini destekleyen tüm kapsamları kullanabilirsiniz.
URL'yi tarayıcınızın adres çubuğuna yapıştırın ve OAuth akışında belirtilen adımları uygulayın. Bu akış, bu hızlı başlangıç kılavuzunda kullandığınız, kuruluşunuza ait veya kuruluşunuz tarafından kontrol edilen hesapta oturum açmanızı gerektirir.
Bu, OAuth kapsamlarına izin veren hesaptır. İzin ekranı şu şekilde görünmelidir (Ekranınızdaki metin bu resimdeki metinden farklı olabilir):
Erişim izni verilecek kapsamları ve hesabın verilerine erişimi paylaşacağınız süreyi (bir kez, 30 gün veya 180 gün) seçin. Bu hızlı başlangıç kılavuzu için 30 gün'ü seçin. (Zaman filtreleri, tek seferlik erişimde de çalışır.)
İzin verdikten ve erişimin süresine karar verdikten sonra yönlendirme URI'sine (https://google.com) yönlendirilirsiniz. Adres çubuğunda oluşturulan URL, OAuth erişim jetonunu içerir.
Örneğin, kullanıcı hesabı
dataportability.myactivity.search
kapsamına OAuth erişimi verirse oluşturulan URL şu şekilde görünür:https://google.com/#state=developer-specified-value&access_token=your_OAuth_token&token_type=Bearer&expires_in=3599&scope=https://www.googleapis.com/auth/dataportability.myactivity.search
URL'de your_OAuth_token, jetonu temsil eden bir dizedir.
OAuth jetonunu doğrulamak için bu URL'yi tarayıcınıza yapıştırın:
https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=your_OAuth_token
Yanıt şu şekilde görünmelidir:
{ "azp": <your_azp_value>, "aud": <your_aud_value>, "scope": "https://www.googleapis.com/auth/dataportability.myactivity.search", "exp": "1694210968", "expires_in": "3334", "access_type": "online" }
İstek göndermek için
azp
veyaaud
alanlarına ihtiyacınız yoktur.azp
alanı, yetkili sunucununclient_id
değerini temsil eder.aud
alanı ise bu jetonun hedef kitlesini tanımlar. Bu alan, uygulamanızın istemci kimliklerinden birine eşit olur.OAuth jetonunuzu ve API anahtarınızı alın. Data Portability API'ye çağrı yapmak için bunlara ihtiyacınız vardır.
Uç noktalara istek gönderme
Bu hızlı başlangıç kılavuzunda, dışa aktarılan verileri zaman damgaları ile filtrelemek için Data Portability API uç noktalarını çağırmak üzere curl komutlarını kullanırsınız.Bu komutlar için daha önce topladığınız OAuth jetonu ve API anahtarı gerekir.
Son dışa aktarma işlemine ait veriler
Son dışa aktarma işleminizden sonraki yeni verileri dışa aktarmak için zamana dayalı erişimle zaman filtrelerini kullanabilirsiniz. Örneğin, https://www.googleapis.com/auth/dataportability.myactivity.search
kapsamını ele alalım.
Öncelikle
InitiatePortabilityArchive
uç noktasına kimliği doğrulanmış bir istek gönderirsiniz. Bu istek, veri kümesinin tamamı için bir arşivleme işi başlatır.Aşağıdaki curl komutunu çalıştırın:
curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"]}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate
Komutta:
your_OAuth_token
, OAuth jetonunuzdur.
InitiatePortabilityArchive
isteği birarchiveJobId
veaccessType
döndürür. İş kimliği, veri arşivindeki durumu almak için kullanılır ve erişim türü, verilere tek seferlik mi yoksa zamana dayalı erişim mi verildiğini belirler. Zamana dayalı erişim için şunları görürsünüz:{ "archiveJobId": "<your_job_id_1>" "accessType": "ACCESS_TYPE_TIME_BASED" }
Geçerli bir OAuth jetonu sağlamazsanız şu hata mesajı döndürülür:
Request had invalid authentication credentials. Expected OAuth 2.0 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.
Ardından, arşivleme işinin durumunu almak için
GetPortabilityArchiveState
uç noktasına kimlik doğrulaması yapılmış bir istek gönderirsiniz.Aşağıdaki curl komutunu çalıştırın:
curl -H 'Authorization: Bearer your_OAuth_token' -X GET \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/archiveJobs/your_job_id_1/portabilityArchiveState
Komutta:
your_OAuth_token
, OAuth jetonunuzdur.your_job_id_1
,InitiatePortabilityArchive
isteği tarafından döndürülen iş kimliğidir.
Yanıt, işin durumuna bağlıdır. İş tamamlanmadıysa yanıtta mevcut durum sağlanır. İş tamamlanana kadar bu uç noktaya düzenli olarak istek göndermeniz gerekir.
{ "state": "IN_PROGRESS" }
İş tamamlandıysa yanıtta durum ve veri arşivini indirmek için kullanılan bir veya daha fazla imzalı URL bulunur. Ayrıca,
InitiatePortabilityArchive
adresine yapılan ilk aramanın zaman damgasını temsil eden birexport_time
alanı da vardır.{ "state": "COMPLETE", "urls": [ "<signed_url>" ] "export_time": "<timestamp_of_first_initiate_request>" }
Veri arşivini indirmek için imzalanmış URL'yi tarayıcınıza yapıştırın. Beklenen arama etkinliği verilerini içerdiğinden emin olmak için arşivin içeriğini incelemeniz gerekir.
Yanıtta
FAILED
durumu alırsanızRetryPortabilityArchive
yöntemini kullanarak dışa aktarma işlemini yeniden deneyebilirsiniz.En az 24 saat bekleyin ve 1. adımdakiyle aynı komutu kullanarak
InitiatePortabilityArchive
için başka bir istek gönderin. Bu kezstart_time
olarakexport_time
değerini kullanın.curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"], "start_time": timestamp_of_first_initiate_request}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate
Zamana dayalı erişim için aşağıdakiler döndürülür:
{ "archiveJobId": "<your_job_id_2>" "accessType": "ACCESS_TYPE_TIME_BASED" }
Arşivleme işinin durumunu almak için
GetPortabilityArchiveState
uç noktasına kimliği doğrulanmış bir istek göndermek üzere 2. adımı tekrarlayın (<your_job_id_2>
kullanarak).İş tamamlandığında yanıt şu şekilde olur:
{ "state": "COMPLETE", "urls": [ "signed_urls" ], "start_time": timestamp_of_first_initiate_request, "export_time": timestamp_of_second_initiate_request }
İkinci dışa aktarma işleminde yalnızca ilk dışa aktarma işleminden sonra oluşturulan yeni verilerin yer aldığını doğrulayın.
Son 6 aya ait veriler
Ayrıca, tüm veri kümesinin yerine yalnızca en son verileri dışa aktarmak için zaman filtrelerini de kullanabilirsiniz.
Bugünün tarihinin
2024-10-01
olduğunu ve son 6 ayın verilerini dışa aktarmak istediğinizi varsayalım. Öncelikle, "2024-04-01T00:00:00Z"start_time
değeriyleInitiatePortabilityArchive
uç noktasına kimlik doğrulaması yapılmış bir istek gönderirsiniz.Aşağıdaki curl komutunu çalıştırın:
curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"], "start_time": "2024-04-01T00:00:00Z"}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate
Zamana dayalı erişim için aşağıdakiler döndürülür:
{ "archiveJobId": "job_id_1" "accessType": "ACCESS_TYPE_TIME_BASED" }
Arşivleme işinin durumunu almak için
GetPortabilityArchiveState
uç noktasına istek gönderin.Aşağıdaki curl komutunu çalıştırın:
curl -H 'Authorization: Bearer your_OAuth_token' -X GET \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/archiveJobs/job_id_1/portabilityArchiveState
İş tamamlandığında yanıt şu şekilde olur:
{ "state": "COMPLETE", "urls": [ "signed_urls" ], "start_time": "2024-04-01T00:00:00Z", "export_time": "2024-10-01T00:00:00Z" }
start_time
değerinin 1. adımda belirtilenstart_time
olduğunu veexport_time
değerinin 1. adımdaInitiatePortabilityArchive
çağrısının yapıldığı zaman damgası olduğunu unutmayın.Dışa aktarma işleminin yalnızca son altı aya ait verileri içerdiğini doğrulayın.
Belirli bir zaman dilimindeki veriler
Belirli bir tarih aralığından (ör. yalnızca 2023'ten) verileri dışa aktarmak için zaman filtrelerini kullanabilirsiniz.
Öncelikle, "2023-01-01T00:00:00Z"
start_time
ve "2023-12-31T23:59:59Z"end_time
değerleriyleInitiatePortabilityArchive
uç noktasına kimlik doğrulaması yapılmış bir istek gönderirsiniz.Aşağıdaki curl komutunu çalıştırın:
curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ --data '{"resources":["myactivity.search"], "start_time": "2023-01-01T00:00:00Z", "end_time": "2023-12-31T23:59:59Z"}' \ https://dataportability.googleapis.com/v1/portabilityArchive:initiate
Zamana dayalı erişim için aşağıdakiler döndürülür:
{ "archiveJobId": "job_id_1" "accessType": "ACCESS_TYPE_TIME_BASED" }
Arşivleme işinin durumunu almak için
GetPortabilityArchiveState
uç noktasına istek gönderin.Aşağıdaki curl komutunu çalıştırın:
curl -H 'Authorization: Bearer your_OAuth_token' -X GET \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/archiveJobs/job_id_1/portabilityArchiveState
İş tamamlandığında yanıt şu şekilde olur:
{ "state": "COMPLETE", "urls": [ "signed_urls" ], "start_time": "2023-01-01T00:00:00Z", "export_time": "2023-12-31T23:59:59Z" }
start_time
değerinin 1. adımda belirtilenstart_time
olduğunu veexport_time
değerinin 1. adımda sağlananend_time
değerine eşit olduğunu unutmayın.Dışa aktarma işleminin yalnızca 2023'e ait veriler içerdiğini doğrulayın.
Desteklenen kapsamlar
Aşağıdaki kapsamlar zaman filtrelerini destekler:
https://www.googleapis.com/auth/dataportability.myactivity.youtube
https://www.googleapis.com/auth/dataportability.myactivity.maps
https://www.googleapis.com/auth/dataportability.myactivity.search
https://www.googleapis.com/auth/dataportability.myactivity.myadcenter
https://www.googleapis.com/auth/dataportability.myactivity.shopping
https://www.googleapis.com/auth/dataportability.myactivity.play
https://www.googleapis.com/auth/dataportability.chrome.history
Dikkat: Desteklenen ve desteklenmeyen kapsamları karıştıran zaman filtreli istekler, The requested
resources do not support time filters
ifadesini içeren bir INVALID_ARGUMENT
hatasıyla sonuçlanır.