Map Tiles API, 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 dokümanda, hesabınızdaki Map Tiles API çağrısına OAuth jetonunun nasıl iletileceği açıklanmaktadır 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
Harita Kutuları API'sını kullanmaya başlamadan önce, bir faturalandırma hesabı olan ve Map Tiles API'nin etkin olduğu bir proje seçin. 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 Harita Kutuları API'sini kullanabilirsiniz. Harita Döşemeleri API'si ile OAuth kullanma hakkında genel bilgiler için 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 Map Tiles API ile kullanmak için kapsamın OAuth jetonuna atanması gerekir:
https://www.googleapis.com/auth/cloud-platform
Örnek: REST API çağrılarını yerel geliştirme ortamınızda deneme
Map Tiles API'yi OAuth jetonu kullanarak denemek istiyorsanız ancak bir ortam 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):
- Henüz yapmadıysanız bir proje oluşturun ve buradaki adımları uygulayarak faturalandırmayı etkinleştirin. Google Cloud Console'da kurun.
- gcloud KSA'yı yükleyin ve başlatın.
Aşağıdaki
gcloud
komutunu çalıştırarak yerel makinenizde kimlik bilgisi dosyası:gcloud auth application-default login
- 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.
.- Faturalandırmanın etkin olduğu Google Cloud projenizin kimliğini veya adını
X-Goog-User-Project
üstbilgisi. Daha fazla bilgi edinmek için bkz. Cloud Console'da ayarlayın.
Aşağıdaki örnekte, OAuth jetonu kullanarak Map Tiles API'ye bir çağrı yapılır:
curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "X-Goog-User-Project: PROJECT_ID" -d '{ "mapType": "roadmap", "language": "en-US", "region": "US" }' \ "https://tile.googleapis.com/v1/createSession"
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.