2

何時間も Web で見つけたすべての可能な解決策を検索して試した後、私の問題に対して他に何も試すことができないので、本当に助けが必要です:

ジオコードの結果を含むシンプルなオートコンプリート テキスト ボックスを実装したいので、ユーザーがテキスト ボックスに入力している間に AJAX リクエストを呼び出します。

  • Google API コンソールから Google マップと Google プレイスを有効にしました
  • サーバーの IP を使用してサーバー アプリのキーを作成しました
  • file_get_contents() 関数 (SSL が有効) を使用して Google プレイスにリクエストを送信するサーバー上で実行されている PHP ファイル (AJAX を介して呼び出される) があります - cURL 関数でも試しました
  • 私が求めるリクエストは、

https://maps.googleapis.com/maps/api/place/autocomplete/json?input=MY_SEARCH_STRING&language=us&types=geocode&sensor=false&key=MY_KEY

ここで、MY_SEARCH_STRING は「London」のような単純な文字列で、MY_KEY は作成したキーです

  • 私が応答として得るものは

{ "予測": []、"ステータス": "REQUEST_DENIED" }

  • ブラウザキーでもこれを試しました。また、新しいプロジェクトを作成し、サービスを再度有効にして、新しいキーを作成しようとしました。サービスのオン/オフを切り替え、任意の組み合わせで何度も新しいキーを作成しました。何も機能しませんでした。

  • 奇妙なことに、私がサーバー上に作成したランディング ページで同じコードが機能していましたが、それを確認するのに長い時間がかかったので、いつ機能しなくなったのかわかりません。

どんな助けにも感謝します!! ありがとうございました。

4

3 に答える 3

5

解決しました。Google API コンソールで、許可されたサーバー IP を宣言しました。IP を宣言した場合、その IP からのリクエストのみが許可されるようにするだけだと想定していました。これを機能させるには、各 IP に対して許可されているユーザーごとの制限も宣言する必要があります。そうしないと、要求が許可されません。許可されたすべての IP を削除し、3 ~ 4 分待った後、リクエストが許可されました。

于 2012-09-02T17:02:47.597 に答える
1

これが役立つかどうかはわかりませんが、短い例を次に示します。

https://google-developers.appspot.com/maps/documentation/javascript/examples/places-autocomplete?hl=el

于 2012-08-21T06:22:05.850 に答える
1

私は同様の問題を抱えており、それを修正し、これのトラブルシューティングに役立つ可能性のあるいくつかのことを発見しました

  • https の代わりに http を使用すると、REQUEST_DENIED に​​なります
  • &userIp=xxxx を省略すると、REQUEST_DENIED に​​なります
  • ユーザーがブラウザー経由でのみ消費した場合でも、リクエストがphpスクリプトからのものであるか、REQUEST_DENIEDになる場合は、サーバーキーを生成して使用する必要があります。
  • 許可された IP のリストが変更されたかどうかをテストする前に、数分が必要です。

それがあなたの何人かを助けることを願っています

于 2014-01-17T03:35:38.027 に答える