Bu hızlı başlangıç kılavuzunda, hesabınız için bir OAuth jetonu alır ve Veri Taşıma API uç noktalarına tek seferlik istekler gönderirsiniz.
Bu hızlı başlangıç kılavuzunda, kullanıcı verilerine tek seferlik erişim için Data Portability API'nin nasıl kullanılacağı açıklanmaktadır. Kullanıcı verilerine sürekli erişim için Zamana Dayalı Erişimi Kullanma başlıklı makaleyi inceleyin. İsteğinize zaman filtrelerini nasıl uygulayacağınızı öğrenmek için Zaman Filtreleri Uygulama başlıklı makaleyi inceleyin.
Öğrenecekleriniz
Bu hızlı başlangıç kılavuzunda şunları öğreneceksiniz:
- Geçerli bir OAuth jetonu sağlayarak
InitiatePortabilityArchive
uç noktasına kimliği doğrulanmış bir istek gönderin. Yanıt geçerli birjob_id
içermelidir. GetPortabilityArchiveState
uç noktasına kimliği doğrulanmış bir istek gönderin. Yanıt, geçerli bir iş durumu ve iş tamamlandığında imzalı bir URL içermelidir.- (İsteğe bağlı) Aynı kimlik bilgilerini kullanarak
InitiatePortabilityArchive
uç noktasına geçerli bir OAuth jetonu içeren kimliği doğrulanmış bir istek ikinci kez gönderin. Bu işlem,RESOURCE_EXHAUSTED
hatası döndürür veResetAuthorization
uç noktasının önemini vurgulamak için kullanılır. ResetAuthorization
uç noktasına kimliği doğrulanmış bir istek gönderin. Bu istek, kullanıcı tarafından verilen tüm OAuth kapsamlarını iptal eder.- (İsteğe bağlı) Daha önce kullandığınız OAuth jetonunu kullanarak
InitiatePortabilityArchive
uç noktasına istek gönderin. Yetkilendirme sıfırlandıktan sonra istek başarısız olur.
Ö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çtiğinizde bu hızlı başlangıç kılavuzu tek seferlik erişim kullanı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-valueURL'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. YouTube etkinliği kapsamını veya her iki kapsamı da 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 Yalnızca bir kez'i seçin.
İzin verdikten ve erişim süresini seçtikten 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.searchURL'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, Data Portability API uç noktalarını çağırmak için curl komutlarını kullanacaksınız. Bu komutlar için daha önce topladığınız OAuth jetonu ve API anahtarı gerekir.
Data Portability API'yi çağırmak için:
Öncelikle
InitiatePortabilityArchive
uç noktasına kimliği doğrulanmış bir istek gönderirsiniz. Bu istek, 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:initiateKomutta:
your_OAuth_token
, OAuth jetonunuzdur.
InitiatePortabilityArchive
isteği birjob_id
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. Bu hızlı başlangıç kılavuzu için tek seferlik erişiminiz olmalıdır.{ 'archiveJobId': '<your_job_id>' 'accessType': 'ACCESS_TYPE_ONE_TIME' }
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 /portabilityArchiveStateKomutta:
your_OAuth_token
, OAuth jetonunuzdur.your_job_id
,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.
{ "state": "COMPLETE", "urls": [ "<signed_url>" ] }
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.
(İsteğe bağlı)
InitiatePortabilityArchive
uç noktasına kimlik doğrulaması yapılmış bir istek göndermek için önceki komutu tekrarlayı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:initiateKomutta:
your_OAuth_token
, OAuth jetonunuzdur.
Yanıt,
myactivity.search
kaynağı için tek seferlik iznin bu kullanıcı için kullanıldığını belirtmelidir.... "error": { "code": 429, "message": "Requested resources have already been exported. Please call ResetAuthorization and re-obtain consent before trying again.", "status": "RESOURCE_EXHAUSTED", "details": [ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "RESOURCE_EXHAUSTED_ONE_TIME", "domain": "dataportability.googleapis.com" "metadata": { "previous_job_ids": "{previous_job_ids}" "access_type": "ACCESS_TYPE_ONE_TIME" ...
ResetAuthorization
uç noktasına kimliği doğrulanmış bir istek gönderin. Bu istek, kullanıcı tarafından verilen tüm OAuth kapsamlarını iptal eder ve daha önce kullandığınız bir kaynak grubu içinInitiatePortabilityArchive
çağrısı yapmanıza olanak tanır.curl -H 'Authorization: Bearer
your_OAuth_token ' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/authorization:resetKomutta:
your_OAuth_token
, OAuth jetonunuzdur.
Bu komut boş bir yanıt döndürür.
(İsteğe bağlı) Yetkilendirmeyi sıfırladıktan sonra
InitiatePortabilityArchive
uç noktasına başka bir istek gönderin. Daha önce kullandığınız curl komutunu kullanı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:initiateKomutta:
your_OAuth_token
, OAuth jetonunuzdur.
Sağladığınız OAuth jetonu iptal edildiğinden yanıtta bir hata döndürülecektir.
... "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED" }