OAuth kullan

Routes API, kimlik doğrulama için OAuth 2.0 kullanımını destekler. Google, web sunucusu senaryoları gibi yaygın OAuth 2.0 senaryolarını destekler.

Bu belgede, geliştirme ortamınızdaki Routes API çağrısına bir OAuth jetonunun nasıl iletileceği açıklanmaktadır. Üretim ortamında OAuth kullanma talimatları için Google'da Kimlik Doğrulama başlıklı makaleyi inceleyin.

Başlamadan önce

Routes API'yi kullanmaya başlamadan önce faturalandırma hesabı olan ve Routes API'nin etkin olduğu bir projeye ihtiyacınız vardır. Birden fazla Proje Sahibi ve Faturalandırma Yöneticisi oluşturmanızı öneririz. Böylece ekibinizde bu rollere sahip birilerinin olur. Daha fazla bilgi edinmek için Cloud Console'da ayarlama bölümüne bakın.

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ındaki etkileşimler gibi sunucular arası etkileşimleri destekler. Bu senaryo için bir hizmet hesabına ihtiyacınız vardır. Hizmet hesabı, bireysel son kullanıcı yerine uygulamanıza ait bir hesaptır. Uygulamanız, hizmet hesabı adına Google API'lerini çağırır, böylece kullanıcılar sürece doğrudan dahil olmaz. Kimlik doğrulama yöntemleri hakkında daha fazla bilgi edinmek için Google'da Kimlik Doğrulama sayfasına göz atın.

Alternatif olarak, Routes API'yi Android veya iOS mobil uygulamasının bir parçası olarak da kullanabilirsiniz. Farklı dağıtım ortamlarına yönelik erişim jetonlarını yönetmeyle ilgili bilgiler de dahil olmak üzere, OAuth'u Routes API ile kullanma hakkında genel bilgiler için Google API'lerine Erişmek için OAuth 2.0'ı Kullanma bölümüne bakın.

OAuth kapsamları hakkında

OAuth'u Routes API ile kullanmak için OAuth jetonuna kapsam atanmalıdır:

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

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

OAuth jetonu kullanarak Routes API'yi denemek istiyorsanız ancak jeton oluşturmak için bir ortam ayarınız yoksa çağrıyı yapmak için 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 daha fazla bilgi için İstemci kitaplıklarını kullanarak kimlik doğrulama bölümüne bakın.

Ön koşullar

ADC kullanarak REST isteğinde bulunmadan önce kimlik bilgilerini ADC'ye 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 KSA'yı yükleyin ve başlatın.
  3. Kimlik bilgisi dosyanızı oluşturmak için yerel makinenizde şu gcloud komutunu çalıştırın:

    gcloud auth application-default login
  4. Bir 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 bilgilerini sağlama belgelerinin Yerel geliştirme ortamı bölümüne bakın.

REST isteğinde bulunma

Bu örnekte, iki istek başlığı iletirsiniz:

  • Jetonu oluşturmak için aşağıdaki komutu kullanarak Authorization üstbilgisine OAuth jetonunu iletin:

    gcloud auth application-default print-access-token

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

  • 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 bölümüne bakın.

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

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "travelMode": "DRIVE",
}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "X-Goog-FieldMask: routes.duration,routes.distanceMeters" \
"https://routes.googleapis.com/directions/v2:computeRoutes"

Sorun giderme

İsteğiniz, bu API tarafından desteklenmeyen son kullanıcı kimlik bilgileri hakkında bir hata mesajı döndürürse Kullanıcı kimlik bilgileri çalışmıyor bölümüne göz atın.