明らかに、「Google Geocoding API」を使用するために「Maps APIキー」は必要ありません。
http://code.google.com/apis/maps/documentation/geocoding/index.html
しかし、私はこれを取得します:
{
"status": "REQUEST_DENIED",
"results": [ ]
}
これは私のIPがブロックされているということですか?これを克服するために何ができますか?
2014年の終わりまで、このエラーの一般的な原因は、以下のように、要求から必須のsensor
パラメーターを省略していました。ただし、2014/12/31以前の時点では必要ありません。
センサーパラメーター
Google Maps APIでは、アプリケーションがセンサーを使用してユーザーの位置を特定するかどうかを示すsensorパラメーターを含める必要がありました。このパラメーターは不要になりました。
リクエストでsensor
パラメーターを指定しましたか?
「REQUEST_DENIED」は、一般的にセンサーパラメータがないためにリクエストが拒否されたことを示します。
sensor(必須)—位置情報センサーを備えたデバイスからジオコーディングリクエストが送信されるかどうかを示します。この値はtrueまたはfalseである必要があります
APIキーパラメータとその値を削除します。
例えば。 https://maps.googleapis.com/maps/api/geocode/json?address=[YOUR ADDRESS]&sensor=true
私の場合、キー= API_KEYを追加した後、セキュアプロトコルなしでサービスを呼び出すと(つまりhttp)、この問題が発生することがわかりました。 httpsに変更することで解決しました。
アドレスを適切にURLエンコードしないと、一部のアドレスでREQUEST_DENIEDも取得されることに気付きました。たとえば、
123 Main St #B、Mytown、CA 94110
「#」文字は%23としてエンコードする必要があります
Googleがウェブサイトで提供しているURLの例をコピーして貼り付けるだけです http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor = true_or_false センサーのパラメーターが間違っているため失敗します。あなたが書いたものではなく、trueまたはfalseに変更する必要があります。たぶんあなたが持っていたエラーは、それが私に起こったように...
私のように2017年以降にこのページを見ている人のために
センサーはもう必要ありません、私は試しましたが、エラーが発生しました:
Google Maps Geocoding API を有効にする必要がありましたが、これは最近必要になっているようです。
それが私のような人を助けることを願っています。
この問題が発生したため、ジオコーディングにはJSマップAPIが付属していると想定していることに気付きました。ただし、これはクラウドコンソールで有効にしていない個別のAPIです。有効にするとすぐに修正されました。
このアカウントでサービスが有効になっていないことをGoogleが許可しないのは残念です。最初に有効にしてみてください。ここに移動します https://console.developers.google.com/project プレースサービスをアクティブにして新しいプロジェクトを作成すると、問題が解決する場合があります。
この問題に苦しんでいる人にとって、Geocoding APIはリファラーの制限があるAPIキーでは使用できないことがわかりました。リファラーの制限をすべて削除すれば、うまくいくはずです。
リファラー制限付きのキーを許可する他のAPI(Maps JS APIなど)を使用している場合、ジオコーディング専用に使用するための制限のない2番目のキーを作成することをお勧めします。それ以外の場合は、独自のサイトで使用を開始できます。
drupal 7 Locationモジュールを使用してこの問題も発生しました。すべての空の場所を自動入力すると、このエラーが発生しました。
「このAPIで使用する場合、ブラウザAPIキーはリファラーの制限を持つことはできません。」
問題の解決は簡単でした。制限なしで新しいキーを作成し、ジオコーディングにのみ使用します。
Google APIキーを初めて使用する場合の注意:制限により、APIキーを使用したリクエストを特定のドメイン/サブドメインに制限することを意味します。 (例: http://yourdomain.com からのリクエストのみが許可されます)。
あなたが言うように、これはあなたのIPアドレスがブロックされたことを意味します。 Geocoding APIリクエストのクエリ文字列でキーパラメータを指定するようにしてください。
https://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=Placename&key=XXxxxXXxXxxxxXXxx
また、開発者コンソールでIPアドレスの制限を設定した場合、正しいIPアドレスを許可したことを確認してください。リスト内のプロジェクトをクリックするだけで、許可されたIPが表示されます。
それでも問題が発生する場合は、Googleからの応答からstatus
およびerror_message
要素の値を印刷することを検討してください。次のように表示されます。
REQUEST_DENIED - This IP, site or mobile application is not authorized to use this API key. Request received from IP address 123.4.5.678, with empty referer
IPアドレスの制限について言及されていない場合は、問題に関する十分な情報がGoogleに修正される可能性があります。
Googleは非常に役立つエラーメッセージを返しています。これは問題の修正に役立ちます。
Dim Request As New XMLHTTP30
Dim Results As New DOMDocument30
Dim StatusNode As IXMLDOMNode
Request.Open "GET", "https://maps.googleapis.com/maps/api/geocode/xml?" _
& "&address=xxx", False
Request.Send
Results.LoadXML Request.responseText
Set StatusNode = Results.SelectSingleNode("//status")
Select Case UCase(StatusNode.Text)
Case "REQUEST_DENIED"
Debug.Print StatusNode.NextSibling.nodeTypedValue
...
エラーメッセージの例
メッセージ1:このAPIへのリクエストはSSL経由である必要があります。「http://」ではなく「https://」でAPIをロードしてください。
メッセージ2:サーバーはリクエストを拒否しました:APIキーを使用して、Google Maps Platform APIへの各リクエストを認証する必要があります。詳細については...