Data Portability API'yi kullanmaya başlayın

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 bir job_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 ve ResetAuthorization 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.
  • 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:

  1. 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.

  2. 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):

    Kullanıcının, arama etkinliği verilerine erişime izin vermeyi kabul ettiği izin ekranı

  3. İ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.

  4. 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"
    }
    
  5. 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:

  1. Ö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ızca myactivity.search izni verilmiştir. Ek kaynak grupları eklerseniz bir hata döndürülür.

    InitiatePortabilityArchive isteği bir job_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.

  2. 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.

  3. (İ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"
    }
    
  4. 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çin InitiatePortabilityArchive ç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.

  5. (İ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"
      }