ジオコーディングをプログラムしようとしています。 APIキーを作成しましたが、それをWebサイトのコードに追加しても何も得られませんが、APIを使用しない場合はすべてうまくいきます。送信するとき:
https://maps.googleapis.com/maps/api/geocode/json?address=".$adres."&key=KLUCZ_XXX
私は応答を受け取ります:
Browser API keys cannot have referer restrictions when used with this API.
私が使用する場合:
https://maps.googleapis.com/maps/api/geocode/json?address=".$adres"
結果は正しいですが、クエリの数は1日あたりに制限されています。
主要な制約:照会HTTP(Web)-照会を想起させるドメインに設定します。インターフェースGoogle Maps Geocoding APIが有効になっています。
APIキーは、動作するために他の場所でもアクティブ化する必要がありますか?
APIコールサーバー側を作成しているようです。今日、この問題に出くわしました。 APIキーにリファラー制限を設定したため、Geocoding APIなどのWebサービスAPIを使用したブラウザーでの実行に制限されます。リクエストヘッダーにリファラーを手動で設定しても、私にとってはうまくいきませんでした。このページで他のWebサービスAPIを見つけることができます: https://developers.google.com/maps/web-services/
重要:リファラーの制限があるAPIキーを持つWebサービスAPIのいずれかを使用している場合、「このAPIで使用する場合、APIキーはリファラーの制限を持つことができません」というエラーメッセージで失敗します。サーバー制限の使用に切り替える必要があります。
サーバー側を使用するには、別のキーを作成する必要があります。制限をブラウザー制限からサーバー制限に変更できますブラウザのリファラーの代わりに、IPアドレスを使用してアクセスを制限します。
Maps APIの次のセクションを参照してくださいFAQキーの種類をサーバーの制限されたキーに切り替える: https://developers.google.com/maps/faq#switch-key-type
または、ブラウザキーとジオコードクライアント側(JavaScript)を引き続き使用して、結果をajax経由でバックエンドに返すこともできます。
サーバー側のジオコーディングがオプションでない場合は、 Google Javascript API のジオコーダーを使用する必要があります。そのAPIにHTTPリファラーの制限を設定できます。
Google自身は 動的ジオコーディング用の非Javascript Geocoder APIを避けるため :
このサービスは通常、地図上にアプリケーションコンテンツを配置するための静的(事前に知られている)アドレスをジオコーディングするために設計されています。このサービスは、ユーザー入力にリアルタイムで応答するようには設計されていません。動的なジオコーディング(たとえば、ユーザーインターフェイス要素内)については、Maps JavaScript APIクライアントジオコーダーやGoogle PlayサービスのLocation APIのドキュメントを参照してください。