OAuth kullan

Places Insights API, kimlik doğrulama için OAuth 2.0'ı destekler. Google; web sunucusu gibi yaygın OAuth 2.0 senaryolarını destekler.

Bu dokümanda, geliştirme ortamınızdaki Places Insights API çağrısına OAuth jetonunun nasıl iletileceği açıklanmaktadır. OAuth'u üretim ortamında kullanmayla ilgili talimatlar için Google'da Kimlik Doğrulama başlıklı makaleyi inceleyin.

Başlamadan önce

Places Insights API'yi kullanmaya başlamadan önce, faturalandırma hesabı ve Places Insights API'nin etkin olduğu bir projeye ihtiyacınız vardır. Ekibiniz için her zaman bu rollere sahip bir kullanıcının bulunması amacıyla birden fazla proje sahibi ve faturalandırma yöneticisi oluşturmanızı öneririz. Daha fazla bilgi için Cloud Console'da ayarlama başlıklı makaleyi inceleyin.

OAuth hakkında

Dağıtım ortamınıza bağlı olarak OAuth ile erişim jetonları oluşturmanın ve yönetmenin birçok yolu vardır.

Örneğin, Google OAuth 2.0 sistemi, uygulamanız ile bir Google hizmeti arasındakiler gibi sunucudan sunucuya etkileşimleri destekler. Bu senaryo için bir hizmet hesabına ihtiyacınız vardır. Hizmet hesabı, bireysel bir son kullanıcı yerine uygulamanıza ait bir hesaptır. Uygulamanız, hizmet hesabı adına Google API'lerini çağırır. Dolayısıyla kullanıcılar bu işleme doğrudan dahil olmaz. Kimlik doğrulama yöntemleri hakkında daha fazla bilgi için Google'da kimlik doğrulama başlıklı makaleyi inceleyin.

Alternatif olarak, Places Insights API'yi bir Android veya iOS mobil uygulamasının parçası olarak kullanabilirsiniz. Farklı dağıtım ortamları için erişim jetonlarını yönetme hakkında bilgiler de dahil olmak üzere OAuth'u Places Insights API ile kullanmayla ilgili genel bilgiler için Google API'lerine Erişmek için OAuth 2.0'ı Kullanma başlıklı makaleyi inceleyin.

OAuth kapsamları hakkında

OAuth'u Places Insights API ile kullanmak için OAuth jetonuna aşağıdaki kapsam atanmalıdır:

  • https://www.googleapis.com/auth/cloud-platform

Örnek: Yerel geliştirme ortamınızda REST API çağrılarını deneyin

Places Insights API'yi OAuth jetonu kullanarak denemek istiyorsanız ancak jeton oluşturmak için ayarlanmış bir ortamınız yoksa çağrıyı yapmak üzere bu bölümdeki prosedürü kullanabilirsiniz.

Bu örnekte, çağrı yapmak için Uygulama Varsayılan Kimlik Bilgileri (ADC) tarafından sağlanan OAuth jetonunun nasıl kullanılacağı açıklanmaktadır. İstemci kitaplıklarını kullanarak Google API'lerini çağırmak için ADC'yi kullanma hakkında bilgi edinmek istiyorsanız İstemci kitaplıklarını kullanarak kimlik doğrulama başlıklı makaleyi inceleyin.

Ön koşullar

ADC'yi kullanarak REST isteği göndermeden önce ADC'ye kimlik bilgileri sağlamak için Google Cloud CLI'yi kullanın:

  1. Henüz yapmadıysanız Google Cloud Console'da Kurulum bölümündeki adımları uygulayarak bir proje oluşturun ve faturalandırmayı etkinleştirin.
  2. gcloud CLI'yi yükleyip başlatın.
  3. Kimlik bilgisi dosyanızı oluşturmak için yerel makinenizde aşağıdaki gcloud komutunu çalıştırın:

    gcloud auth application-default login
  4. Giriş ekranı gösterilir. Giriş yaptıktan sonra kimlik bilgileriniz ADC tarafından kullanılan yerel kimlik bilgisi dosyasında saklanır.

Daha fazla bilgi için Uygulama Varsayılan Kimlik Bilgileri için kimlik bilgileri sağlama dokümanının Yerel geliştirme ortamı bölümüne bakın.

REST isteği gönderme

Bu örnekte iki istek üstbilgisi iletiyorsunuz:

  • Aşağıdaki komutu kullanarak jetonu oluşturmak için Authorization başlığında OAuth jetonunu iletin:

    gcloud auth application-default print-access-token

    Döndürülen jetonun kapsamı https://www.googleapis.com/auth/cloud-platform.

  • X-Goog-User-Project başlığında, faturalandırmanın etkin olduğu Google Cloud projenizin kimliğini veya adını iletin. Daha fazla bilgi için Cloud Console'da ayarlama başlıklı makaleyi inceleyin.

Aşağıdaki örnekte, OAuth jetonu kullanılarak Places Insights API'ye çağrı yapılmaktadır:

curl -X POST 'https://areainsights.googleapis.com/v1:computeInsights' \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \
-H "Authorization: Bearer $TOKEN" \
--data '{
   "insights":[
      "INSIGHT_COUNT"
   ],
   "filter":{
      "location_filter":{
         "region":{
            "place":"places/ChIJIQBpAG2ahYAR_6128GcTUEo"
         }
      },
      "type_filter":{
         "included_types":[
            "restaurant"
         ]
      },
      "price_levels":[
         "PRICE_LEVEL_INEXPENSIVE"
      ]
   }
}'

Sorun giderme

İsteğiniz, son kullanıcı kimlik bilgilerinin bu API tarafından desteklenmediğiyle ilgili bir hata mesajı döndürüyorsa Kullanıcı kimlik bilgileri çalışmıyor başlıklı makaleyi inceleyin.