Bu hızlı başlangıç kılavuzunda hesabınız için bir OAuth jetonu alır ve Data Portability API uç noktalarına istek gönderirsiniz.
Öğ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ış 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 da imzalı bir URL içermelidir.- (İsteğe bağlı) Aynı kimlik bilgilerini kullanarak
InitiatePortabilityArchive
uç noktasına ikinci kez geçerli bir OAuth jetonu içeren kimliği doğrulanmış istek gönderin. Bu,RESOURCE_EXHAUSTED
hatası döndürür veResetAuthorization
uç noktasının önemini vurgulamayı amaçlamaktadı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 şunları yapmanız gerekir:
- Data Portability API'nin bulunduğunuz yerdeki kullanıcılara sunulduğunu doğrulayın. Desteklenen ülke ve bölgelerin listesi için "Verilerinizin 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.
Basitlik sağlaması için bu hızlı başlangıç kılavuzunda JavaScript web uygulaması akışı kullanılmaktadır.
- Yetkilendirme kimlik bilgilerinizi oluştururken OAuth 2.0 İstemci Kimliğinizi ve yetkili yönlendirme URI'nızı (ör. https://google.com) not edin. Bunlara daha sonra hızlı başlangıç bölümünde 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.
- Bir OAuth jetonu alın.
- Kuruluşunuza ait veya kuruluşunuz tarafından kontrol edilen bir hesaba erişim elde edin. Söz konusu hesabın 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ına ilişkin akışı kullanır. Bu akış, yenileme jetonu döndürmez.
Üretim uygulamalarında, genellikle isteğe bağlı erişim jetonları oluşturmak amacıyla kullanılabilecek bir yenileme jetonu almak için OAuth akışı kullanırsınız. Buna örnek olarak sunucu tarafı web uygulamaları akışı verilebilir.
OAuth jetonu almak için:
Aşağıdakine benzer 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& include_granted_scopes=true& state=developer-specified-value
URL'de:
client_id
, OAuth istemci kimliğinizdir.redirect_uri
, yetkili yönlendirme URI'nızdır (örneğin, https://google.com).
Bu hızlı başlangıç sayfasının URL'sinde kullanılan kapsamın arama etkinliği kapsamı olduğuna dikkat edin. YouTube etkinlik 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ışındaki adımları izleyin. Bu akış, bu hızlı başlangıç kılavuzu için kullanmakta olduğunuz ve kuruluşunuza ait olan veya kuruluşunuz tarafından kontrol edilen hesapta oturum açmanızı gerektirir.
Bu, OAuth kapsamlarına izin veren hesaptır. İzin ekranı aşağıdaki gibi görünmelidir (ekranınızdaki metin, bu resimdeki metinden farklı olabilir):
İzin 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 <OAuth_jetonunuz> değeri, jetonu temsil eden bir dizedir.
OAuth jetonunu doğrulamak için şu URL'yi tarayıcınıza yapıştırın:
https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=your_OAuth_token
Yanıt aşağıdaki gibi 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" }
OAuth jetonunuzu ve API anahtarınızı toplayın. Bunlar, Data Portability API'ye çağrı yapmak için gereklidir.
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.Şu 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.
NOT:
resources
parametresi yalnızca erişim izni verilen OAuth kapsamlarını içermelidir. Bu örnekte yalnızcamyactivity.search
izni verilmiştir. Ek kaynak grupları eklerseniz bir hata döndürülür.InitiatePortabilityArchive
isteği birjob_id
döndürür. Bu iş kimliği, veri arşivinin durumunu almak için kullanılır.{ "archiveJobId": "<your_job_id>" }
Geçerli bir OAuth jetonu sağlayamazsanı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.
Daha sonra, arşivleme işinin durumunu almak için
GetPortabilityArchiveState
uç noktasına kimliği doğrulanmış bir istek gönderirsiniz.Şu 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/portabilityArchiveState
Komutta:
your_OAuth_token
, OAuth jetonunuzdur.your_job_id
,InitiatePortabilityArchive
isteği tarafından döndürülen iş kimliğidir.
Yanıt, işin state bağlıdır. İş tamamlanmamışsa yanıt, geçerli durumu sağlar. İş tamamlanıncaya kadar bu uç noktaya düzenli olarak istek göndermeniz gerekir.
{ "state": "IN_PROGRESS" }
İş tamamlandıysa yanıt, durumu ve veri arşivini indirmek için kullanılan bir veya daha fazla imzalanmış URL'yi içerir.
{ "state": "COMPLETE", "urls": [ "<signed_url>" ] }
Veri arşivini indirmek için oturum açılmış 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 kimliği doğrulanmış 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:initiate
Komutta:
your_OAuth_token
, OAuth jetonunuzdur.
Yanıt,
myactivity.search
kaynağı için tek seferlik iznin bu kullanıcı için tükendiğini belirtmelidir.... "error": { "code": 429, "message": "Resource has been exhausted (check quota).", "status": "RESOURCE_EXHAUSTED" }
ResetAuthorization
uç noktasına kimliği doğrulanmış 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ğırabilmenizi sağlar.curl -H 'Authorization: Bearer your_OAuth_token' -X POST \ -H "Content-Type: application/json; charset=utf-8" \ https://dataportability.googleapis.com/v1/authorization:reset
Komutta:
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:initiate
Komutta:
your_OAuth_token
, OAuth jetonunuzdur.
Sağladığınız OAuth jetonu iptal edildiği için yanıtın hata döndürmesi gerekir.
... "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" }