Roads Selection API, BigQuery ve Pub/Sub'a yol verileri sağlayan temel bir bileşen olarak Roads Selection API'yi kullanır.
Roads Selection API, kimlik doğrulama için OAuth 2.0 kullanımını destekler. Google, web sunucusu gibi yaygın OAuth 2.0 senaryolarını destekler.
Bu belgede, geliştirme ortamınızda Roads Selection API çağrısına OAuth jetonunun nasıl iletileceği açıklanmaktadır. OAuth'u üretim ortamında kullanma hakkında daha fazla bilgi için Google'da Kimlik Doğrulama başlıklı makaleyi inceleyin.
Başlamadan önce
Roads Selection API'yi kullanmaya başlamadan önce faturalandırma hesabı olan ve Roads Selection API'nin etkinleştirildiği bir projeniz olmalıdır. Daha fazla bilgi için Cloud Console'da kurulum başlıklı makaleyi inceleyin.
OAuth hakkında
Dağıtım ortamınıza bağlı olarak OAuth ile erişim jetonlarını birkaç farklı şekilde oluşturabilir ve yönetebilirsiniz.
Örneğin, Google OAuth 2.0 sistemi, uygulamanız ile bir Google hizmeti arasındaki etkileşimler gibi sunucular arası etkileşimleri destekler. Bu senaryoda, bireysel bir kullanıcı yerine uygulamanıza ait bir hesap olan hizmet hesabınızın olması gerekir. Kullanıcılar doğrudan dahil olmadığından uygulamanız, hizmet hesabı adına Google API'lerini çağırır. Kimlik doğrulama yöntemleri hakkında daha fazla bilgi için Google'da kimlik doğrulama başlıklı makaleyi inceleyin.
Alternatif olarak, Roads Selection 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 bilgileri de dahil olmak üzere Roads Selection API ile OAuth kullanımı hakkında daha fazla bilgi için Google API'lerine Erişmek için OAuth 2.0'ı Kullanma başlıklı makaleyi inceleyin.
OAuth kapsamları hakkında
Roads Selection API ile OAuth'u kullanmak için OAuth jetonunun https://www.googleapis.com/auth/cloud-platform kapsamına sahip olması gerekir.
Örnek: Yerel geliştirme ortamınızda REST API çağrılarını deneme
Roads Selection API'yi OAuth jetonu kullanarak denemek istiyorsanız ancak jeton oluşturmak için ayarlanmış bir ortamınız yoksa isteği göndermek için bu bölümdeki prosedürü uygulayın.
Bu örnekte, çağrıyı 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ıyla Google API'lerini çağırmak için ADC'yi kullanma hakkında daha fazla 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önderebilmek için Google Cloud CLI'yı kullanarak ADC'ye kimlik bilgileri sağlayın:
- Henüz yapmadıysanız Cloud Console'da kurulum bölümündeki adımları uygulayarak bir proje oluşturun ve faturalandırmayı etkinleştirin.
- gcloud CLI'yı yükleyip ilk kullanıma hazırlayın.
Kimlik bilgisi dosyanızı oluşturmak için yerel makinenizde
gcloudkomutunu çalıştırın:gcloud auth application-default login
- İstendiğinde oturum açın. Oturum açtıktan sonra kimlik bilgileriniz, ADC tarafından kullanılan yerel kimlik bilgisi dosyasında depolanı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 başlığı iletilir:
Jetonu oluşturmak için aşağıdaki komutu kullanarak OAuth jetonunu
Authorizationbaşlığında iletin:gcloud auth application-default print-access-tokenDöndürülen jetonun kapsamı
https://www.googleapis.com/auth/cloud-platform.X-Goog-User-Projectüstbilgisinde faturalandırmanın etkin olduğu Google Cloud projenizin kimliğini veya adını iletin. Daha fazla bilgi için Cloud Console'da kurulum başlıklı makaleyi inceleyin.
OAuth jetonu kullanarak Roads Selection API'ye çağrı yapın:
curl -X GET \ -H 'X-Goog-User-Project: PROJECT_NUMBER' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ https://roads.googleapis.com/selection/v1/projects/PROJECT_NUMBER/selectedRoutes/SELECTED_ROUTE_ID
Sorun giderme
İsteğiniz, son kullanıcı kimlik bilgilerinin bu API tarafından desteklenmediğine dair bir hata mesajı döndürüyorsa Kullanıcı kimlik bilgileri çalışmıyor başlıklı makaleyi inceleyin.