Bu IP, site veya mobil uygulamanın bu API anahtarını kullanma yetkisi yok


102

Ben kullanıyorum https://maps.googleapis.com/maps/api/geocode/json ? Herhangi bir adresin enlem ve boylamını bulmak için sunucu anahtarı ve kullanıcı IP'si ile bağlantı kurmaya çalıştığımda hatayı şu şekilde buluyorum

Google'dan bir sunucu erişim anahtarım var ve sunucumun IP adresini onların beyaz listesine koydum.

PHP CURL aracılığıyla erişmeye çalıştığım URL:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true&key=XXXXXXXXXXXX

Aldığım sonuç:

Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED)

Yapılandırmam gereken herhangi bir şey var mı? Geocoding API de açık.


google'dan yetkili bir anahtar
alıp api'ye

Zaten kullanılabilir bir API anahtarı var
45'te battı

Mike'ın cevabını kontrol et, benim için işe yaradı
Sheraz Ahmad Khilji

Mike20132013'ün cevabını kabul edin! İşe yarıyor!
aveschini

Bu sayı için resmi bir belge var: chromium.org/Home/chromium-security/…
Gopal00005

Yanıtlar:


150

Ben de aynı sorunu yaşadım ve bunu buldum.

URL'de, uygulamanın api anahtarını değil, sonunda sunucu anahtarını gerektirir.

Yani Temel olarak, sunucu anahtarını URL'nin sonuna şu şekilde eklemeniz yeterlidir:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&sensor=true&key=SERVERKEY

Şimdi, sunucu anahtarını almak için aşağıdaki adımları uygulamanız yeterlidir:

1) Developer Console'a gidin https://code.google.com/apis/console/

2) Kimlik Bilgileri'nde, Genel API Erişimi altında, Yeni Anahtar Oluşturun

3) Seçeneklerden sunucu anahtarını seçin.

4) Alana IP Adresinizi girin ve daha fazla ip adresiniz varsa, sadece her satıra ekleyebilirsiniz. NOT: IP Adresini yalnızca test amacınız için kullanmak istediğinizde girin. Aksi takdirde IP Adresi bölümünü boş bırakın.

5) İşiniz bittiğinde, oluştur'a tıklayın ve yeni Sunucu Anahtarınız oluşturulacak ve ardından bu sunucu anahtarını URL'nize ekleyebilirsiniz.

Son olarak, sensor = true değerini URL'nin ortasına koymak yerine, sonuna şu şekilde ekleyebilirsiniz:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&key=SERVERKEY&sensor=true

Bu kesinlikle sorunu çözecektir ve sadece için sunucu anahtarını kullanmayı unutmayın Places API.

DÜZENLE

Web URL'sinin geçmiş yıllarda değiştiğine inanıyorum. Artık geliştirici konsoluna buradan erişebilirsiniz - https://console.developers.google.com/apis/dashboard

  • Geliştirici konsoluna gidin - https://console.developers.google.com/ veya doğrudan API kontrol paneline gitmek için ayrıntılardaki bağlantıyı kullanın.
  • Geliştirici konsolu altında , sol gezinme panelinden Etiketi bulun
  • Proje seçin
  • Sol Gezinme panelinden Kimlik Bilgileri'ni seçin
  • Üst gezinme çubuğundan gerektiği gibi kimlik bilgileri türü oluşturabilirsiniz .

Umarım bu cevap size ve diğer izleyicilere yardımcı olur. İyi şanslar .. :)


8
Çok Önemli 4) Alana IP Adresinizi girin ve daha fazla ip adresiniz varsa her bir satıra ekleyebilirsiniz NOT: IP Adresini sadece test amacınız için kullanmak istediğinizde girin. Aksi takdirde IP Adresi bölümünü boş bırakın.
Sheraz Ahmed Khilji

6
Bu doğru .. sadece test amaçlı IP Adreslerini / Adreslerini belirtin. Aksi takdirde boş bırakın. Çünkü uygulamayı veya api anahtarını yalnızca belirli cihazlarda / uygulamada çalışacak şekilde kısıtlıyorsunuz.
mike20132013

1
@johnshumon Evet sanırım .. cevabı yıllardır güncellemedim. Bazı yeni API değişiklikleri olabilir.
mike20132013

1
Google Places API Web Service'in de etkinleştirilmiş bir API olduğundan emin olmak isteyebilirsiniz
Justin Wilson

1
Google API'nin bu çeşitli genel hataları vermeyi durdurması için yeni "projenin" artık bir Google bulut faturalandırma hesabına bağlanması gerektiğini keşfetmeden önce saatlerce bununla boğuştu. Eşik 0 ABD doları olarak ayarlanabilir, böylece kullanım izin verilen kotayı aşarsa hiçbir zaman ücretlendirilmezsiniz.
Sparky

17
  1. Anahtar seçin
  2. API Kısıtlama sekmesi
  3. API anahtarını seçin
  4. Kayıt etmek
  5. Uygulama Kısıtlamasını Seçin -> Yok
  6. Kayıt etmek

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin


API kısıtlamalarında listelenen ancak coğrafi kodlamayan birkaç hizmetim vardı
Muhammad Umer

bir cazibe gibi çalıştı. Teşekkürler coğrafi kodlamaya çalışıyordu. Sizin belirttiğiniz gibi uygulama kısıtlamalarını hiçbiri olarak ayarlamadım ve işe yaradı.
Ravi

4
Kısıtlamalar: hiçbiri oldukça tehlikeli değildir.
Deniss M.

9
Güvenliği devre dışı bırakmak bir çözüm değil!
Bartholomej

API ANAHTARINI KISITLAMADAN BIRAKMAYIN! Google API'nin bu çeşitli genel hataları vermeyi durdurması için yeni "proje" artık bir faturalandırma hesabına bağlanmalıdır. Eşik 0 ABD doları olarak ayarlanabilir, böylece kullanım izin verilen kotayı aşarsa hiçbir zaman ücretlendirilmezsiniz.
Sparky

14

Google, size atanan API anahtarına ek olarak, gelen isteğin kaynağını REFERRERveya IP adresine bakarak da doğrular . Kıvrılma bir örneği çalıştırmak için yeni bir oluşturmak Server Keyiçinde Google API konsoluna . Oluştururken, sunucunun IP adresini sağlamalısınız. Bu durumda, yerel IP adresiniz olacaktır . Server KeyIP adresinizi oluşturup beyaz listeye ekledikten sonra , curl'de yeni API anahtarını kullanabilmeniz gerekir.

Tahminimce API anahtarınızı muhtemelen Browser KeyIP adresinizi beyaz listeye eklemenizi gerektirmeyen, bunun yerine REFERRERdoğrulama için HTTP başlık etiketini kullanan bir API anahtarını oluşturmuşsunuzdur. curl bu etiketi varsayılan olarak göndermez, bu nedenle Google isteğinizi doğrulayamadı.


1+ Google'ın Geocode hizmetini kullanmak için sunucu API anahtarı oluşturması gerekecektir. Ayrıca Google'ın API konsolundan Google harita coğrafi kodlama hizmetini etkinleştirmeniz gerekiyor .. Teşekkürler !!
Sumit Munot

Google API'nin bu çeşitli genel hataları vermeyi durdurması için yeni "projenin" artık bir Google bulut faturalandırma hesabına bağlanması gerektiğini keşfetmeden önce saatlerce bununla boğuştu. Eşik 0 ABD doları olarak ayarlanabilir, böylece kullanım izin verilen kotayı aşarsa hiçbir zaman ücretlendirilmezsiniz.
Sparky

6

Google Places API şu anda Google APIs Console'dan oluşturulan Android veya iOS anahtarlarını desteklememektedir. Şu anda yalnızca Sunucu ve Tarayıcı anahtarları desteklenmektedir.


1
İlginç ... peki, Android veya iOS uygulamalarında kullanmak için nasıl bir anahtar oluşturulur?
Graham Perks

Tarayıcı anahtarlarınız Android ve iOS'ta çalışacaktır. Google APIs Console'da Tarayıcı anahtarlarını alın
Nazrul Islam

Ekstra çaba göstermeden yapmazlar. Bunu dün sinir bozucu bir günün ardından anladım; uygulamalar için ek bir adım var: stackoverflow.com/a/58136437/434004
Graham Perks

3

Bu işleme izin vermeyecek şekilde kısıtladığınız bir API KEY'i kullanmaya çalışıyorsunuz.

Google'a göre:

Note: If you need to call web, web service, and/or mobile APIs from the same (client-side) app, create and restrict multiple keys.

Yani yapılacak doğru şey, başka bir API KEY oluşturmak ve bu konu için doğru kısıtlamaları seçmektir. Sizin durumunuzda, "IP adresleri" ni seçin ("Uygulama kısıtlamaları" altında) ve sunucu IP'nizi eklemek için "BİR ÖĞE EKLE" seçeneğini kullanın. Boş bir liste bırakmanın işe yaramayacağına ve Google'ın kısıtlamalarınızı "Yok" olarak değiştirmesine neden olacağına dikkat edin.

Ayrıca, ilgili API'leri "API kısıtlamaları" altına eklemeyi unutmayın (sizin durumunuzda "Geocoding API").

Son bir şey - Google, siz uygulamanızı Google Cloud Faturalandırma Hesabına bağlayana kadar bu API'nin kullanımını engelliyor. Yani, henüz yapmadıysanız, başarılı bir şekilde bir yanıt aldığınızda, önce bunu yapmanız gerektiğini söyleyecektir (ücretsiz bir başlangıç ​​paketi vardır).


2

Yönlendirmeden bir anahtar oluşturursunuz, yönlendiren adresini girmeyin


lütfen detaylandırır
mısınız

2
Referans Adresini eklemek için sahip olduğunuz anahtarı oluştururken lütfen buraya bir şey eklediğinizi kontrol edin.
Eklendiyse

2

Google Place API, API çağrısı yapılırken yönlendiren HTTP başlığının eklenmesini gerektirir.

"Referer: yourdomain.com" HTTP üstbilgisini ekleyin ve bu, yanıt sorunlarını çözmelidir.


1
Bu, soruyu yanıtlasa da, ne yaptığınızı açıklamak için yanıtınıza bir metin koymak her zaman iyi bir fikirdir. İyi bir cevabın nasıl yazılacağını okuyun . Ayrıca, bazı kodlar eklemelisiniz.
Jørgen R

Lütfen bir pasaj sağlar
mısınız

İşte yaptığım şey ve mükemmel çalıştı: var options = {url: url, headers: {Referer: ' xxx.herokuapp.com '}}; request.get (seçenekler, işlev (...
Florida G.

1

Ayrıca, verilen proje için ilgili API etkinleştirilmelidir

https://console.developers.google.com/apis/library?project=projectnamehere


Sizin işaret ettiğiniz gibi proje ismimi ekledim ama çalışmıyor.
Ramis

1

API'nin en son sürümü için bunun tam tersi benim için doğru görünüyor.

URL'yi ararken https://maps.googleapis.com/maps/api/geocode/json?address=<address>&key=<key>aşağıdaki hatayı alıyordum

Google Haritalar Platformu API'lerine yönelik her isteğin kimliğini doğrulamak için bir API anahtarı kullanmalısınız. Ek bilgi için lütfen http://g.co/dev/maps-no-account adresine bakın.

Siparişi değiştirdikten https://maps.googleapis.com/maps/api/geocode/json?key=<key>&address=<address>sonra iyi çalıştı.

Yukarıda aldığım hata mesajının, doğrudan tarayıcıdaki URL'ye giderken aldığım mesaj olduğunu unutmayın. API'yi bir yazılım programından aradığımda, temelde aşağıdaki mesajı içeren bir HTML yanıtı aldım:

Üzgünüz ... ama bilgisayarınız veya ağınız otomatik sorgular gönderiyor olabilir. Kullanıcılarımızı korumak için isteğinizi şu anda işleme koyamıyoruz.


Google API'nin bu çeşitli genel hataları vermeyi durdurması için yeni "projenin" artık bir Google bulut faturalandırma hesabına bağlanması gerektiğini keşfetmeden önce saatlerce bununla boğuştu. Eşik 0 ABD doları olarak ayarlanabilir, böylece kullanım izin verilen kotayı aşarsa hiçbir zaman ücretlendirilmezsiniz.
Sparky


0

Kimlik doğrulama, kotalar, fiyatlandırma ve politikalar Kimlik Doğrulama Talimatlar API'sini kullanmak için önce API'yi etkinleştirmeli ve uygun kimlik doğrulama bilgilerini edinmelisiniz. Daha fazla bilgi için bkz. Google Haritalar Platformu'na Başlarken.

Kotalar ve fiyatlandırma Directions API için kotalar ve fiyatlandırma grubu hakkında ayrıntılar için kullanım ve faturalandırma sayfasını inceleyin.

Politikalar Directions API'nin kullanımı, API politikalarına uygun olmalıdır.

daha fazla bilgi: ziyaret edin: --- https://developers.google.com/maps/documentation/directions/start?hl=en_US


-2
  url = https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving&key=AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY

sadece AppDelegate'e ekle beğen

            GMSServices.provideAPIKey("AIzaSyATaUNPUjc5rs0lVp2Z_spnJle-AvhKLHY")

ve bu url'deki anahtarı kaldırın.

şimdi url

https://maps.googleapis.com/maps/api/directions/json?origin=19.0176147,72.8561644&destination=28.65381,77.22897&mode=driving

-3

Hem yön API'sini hem de coğrafi kodlama API'sini devre dışı bırakın ve yeniden etkinleştirin.

sadece 5-10 saniye çalışır ve daha sonra otomatik olarak devre dışı kalır.

bu, ödevinizi test etmek için yalnızca 5-10 saniyeniz olduğu anlamına gelir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.