4

誰かが私のグーグルマップサービスで403Forbiddenエラーが表示される理由に光を当てることができるかどうか疑問に思っていました。

私はそのようにマップAPIをロードしていました:

<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?libraries=places&amp;sensor=false"></script>

次に、ジオコーディングライブラリとオートコンプリートライブラリの両方を使用して、ユーザー検索を座標に変換し、検索結果の地図に表示します。

これは、オートコンプリートサービスにアクセスするたびに403エラーが表示されるようになった昨日まで、(数か月間)完全に機能していました。

クエリで1日あたり25kの制限に達していないことを100%確信しており、コードを変更していません。

スクリプトの読み込みにAPIキーを追加したところ、問題は解消されましたが、これが二度と起こらないようにしたいと思います。位置情報検索は私たちのサイトの主な機能であり、それが壊れた場合、私たちは顧客を失います。

なぜこれが起こったのかについて誰かが何か洞察を持っていますか?

そして、どのような状況でそれが再び起こる可能性がありますか?

4

2 に答える 2

14

この問題は、APIキーセットを使用しても再び発生しました。問題は、実際にはgoogleマップのJavaScriptをキャッシュすることにあると思います。

Webサーバーに、ローカルで結合、縮小、およびキャッシュするJavaScriptを動的に決定させます。これは、RequestReduceを使用して行われます。

クライアント側のJavaScriptが古くなると(私の場合は約3日)、googleは403を無許可で返します。

APIキーはただのニシンでした。キーを削除してもコードは機能します-マップjsが「新鮮」である限り。

私の場合、修正はRequestReduce無視リストに追加maps.googleapis.comすることでした:

javascriptUrlsToIgnore="maps.googleapis.com"

他の人にとっては、maps.googleapis.comjavascriptを数時間以上キャッシュしないように注意してください。

于 2012-05-28T15:39:00.367 に答える
3

Google Maps JavaScript APIは最近、マイナーバージョンのインクリメントを3.9チェンジログに進め、デフォルトバージョンを3.6から3.7に進めました。Google Maps JavaScript APIライブラリの読み込みに使用するURLでバージョンを指定していないので、デフォルトのバージョンである3.7を取得します。バージョン3.7の重要な点の1つは、一部のライブラリでキーを使用する必要があることです。使用するバージョンに関する情報は、開発者ガイドのバージョン管理セクションにあります。

他のいくつかも同様の問題に遭遇しましたが、キーを追加した後に正常に実行されている場合は、問題ないはずです。今後GoogleMapsAPIの変更に関する通知を受け取りたい場合は、通知に登録できます。

于 2012-05-23T13:49:24.957 に答える