OAuth kullan

Route Optimization API'si, kimlik doğrulama için OAuth 2.0 kullanımını destekler. Google, web sunucusu için olanlar gibi yaygın OAuth 2.0 senaryolarını destekler.

Bu belgede, geliştirme ortamına tabidir. OAuth kullanımına ilişkin talimatlar için üretim ortamı hakkında daha fazla bilgi edinmek için Google'da kimlik doğrulama.

Başlamadan önce

Route Optimization API'yi kullanmaya başlamadan önce Route Optimization API'nin etkinleştirilmiş olduğu bir faturalandırma hesabı kullanın. Birden çok hesap oluşturmanızı öneririz Böylece her zaman bu rollere sahip birilerini kullanabilirsiniz kullanabilirsiniz. Daha fazla bilgi için Cloud Console'da ayarlama bölümüne bakın.

OAuth hakkında

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

Örneğin, Google OAuth 2.0 sistemi sunucular arası etkileşimleri destekler. Örneğin, ve Google hizmeti arasındaki bir iletişim taklididir. Bu senaryo için bir hizmet hesabına ihtiyacınız var. bireysel bir son kullanıcıya değil, uygulamanıza ait bir hesaptır. Sizin Uygulama, hizmet hesabı adına Google API'lerini çağırır. Dolayısıyla kullanıcılar sürece doğrudan dahil olmaz. Kimlik doğrulama yöntemleri hakkında daha fazla bilgi için Authentication at Google (Google'da kimlik doğrulama).

Alternatif olarak Android veya iOS mobil uygulamasının parçası olarak Route Optimization API'yi kullanabilirsiniz. Route Optimization API ile OAuth kullanma hakkında genel bilgiler için (yönetimle ilgili bilgiler dahil) farklı dağıtım ortamları için erişim jetonları hakkında daha fazla bilgi Google API'lerine Erişmek için OAuth 2.0 Kullanma.

OAuth kapsamları hakkında

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

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

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

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

Bu örnekte, Google'ın sağladığı OAuth jetonunun nasıl kullanılacağı Uygulama Varsayılan Kimlik Bilgileri (ADC) telefon etmeye hazır. İstemci kitaplıklarını kullanarak Google API'lerini çağırmak için ADC'yi kullanma hakkında bilgi için bkz. İstemci kitaplıklarını kullanarak kimlik doğrulaması yapın.

Ön koşullar

ADC kullanarak REST isteğinde bulunabilmek için Google Cloud KSA'yı kullanın (ADC'ye kimlik bilgisi sağlamak için):

  1. Henüz yapmadıysanız bir proje oluşturun ve buradaki adımları uygulayarak faturalandırmayı etkinleştirin. Google Cloud Console'da kurun.
  2. gcloud KSA'yı yükleyin ve başlatın.
  3. Aşağıdaki gcloud komutunu çalıştırarak yerel makinenizde kimlik bilgisi dosyası:

    gcloud auth application-default login
  4. Bir giriş ekranı görüntülenir. Giriş yaptıktan sonra, kimlik bilgileriniz ADC tarafından kullanılan yerel kimlik bilgileri dosyası.

Daha fazla bilgi için bkz. Yerel geliştirme ortamı Uygulama Varsayılan Kimlik Bilgileri için kimlik bilgilerini sağla belgelerinden faydalanabilirsiniz.

REST isteğinde bulunma

Bu örnekte iki istek başlığı iletiyorsunuz:

  • Aşağıdaki komutu kullanarak Authorization üstbilgisindeki OAuth jetonunu iletin komutunu kullanın:

    gcloud auth application-default print-access-token

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

  • İstek gövde içerik türünün application/json olduğunu belirtin.
ziyaret edin.

Aşağıdaki örnekte, OAuth jetonu kullanarak Route Optimization API'ye çağrı yapılır:

curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
--data-binary @- << EOM
{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        }
      }
    ],
    "globalStartTime": "2023-01-13T16:00:00-08:00",
    "globalEndTime": "2023-01-14T16:00:00-08:00"
  }
}
EOM

Sorun giderme

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