https://maps.googleapis.com/maps/api/geocode/json ?を使用していますサーバーキーとユーザーIPとリンクして、任意のアドレスの緯度と経度を検索します。
Googleからサーバーアクセスキーを取得し、サーバーのIPアドレスをホワイトリストに追加しました。
PHP CURL経由でアクセスしようとしているURLは次のとおりです。
私が得ている結果:
Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED)
構成する必要があるものはありますか?ジオコーディングAPIもオンになっています。
同じ問題があり、これを見つけました。
URLでは、アプリのapiキーではなく、最後にサーバーキーが必要です。
基本的に、次のようにURLの最後にサーバーキーを追加するだけです。
サーバーキーを取得するには、次の手順に従ってください:
1)開発者コンソールに移動 https://code.google.com/apis/console/
2)クレデンシャルのPublic API Accessで、新しいキーを作成します
3)オプションからサーバーキーを選択します。
4)フィールドにIPアドレスを入力し、さらにIPアドレスがある場合は、1行ごとに追加できます。注:テスト目的で使用する場合にのみIPアドレスを入力します。それ以外の場合、[IPアドレス]セクションは空白のままにします。
5)完了したら、[作成]をクリックすると、新しいサーバーキーが生成され、そのサーバーキーをURLに追加できます。
最後に、sensor = trueをURLの中央に配置する代わりに、次のように最後に追加できます。
これは間違いなく問題を解決し、Places API
にサーバーキーを使用することを忘れないでください。
この回答があなたや他の視聴者に役立つことを願っています。がんばろう .. :)
Googleは、割り当てられたAPIキーに加えて、REFERRER
またはIPアドレスのいずれかを調べることにより、着信リクエストのソースを検証します。 curlで例を実行するには、 Google APIコンソール で新しいServer Key
を作成します。作成中に、サーバーのIPアドレスを指定する必要があります。この場合、それは ローカルIPアドレス になります。 Server Key
を作成してIPアドレスをホワイトリストに登録したら、curlで新しいAPIキーを使用できるようになります。
私の推測では、おそらくAPIキーをBrowser Key
として作成しているため、IPアドレスをホワイトリストに登録する必要はなく、代わりにREFERRER
HTTPヘッダータグを検証に使用しています。 curlはデフォルトではこのタグを送信しないため、Googleはリクエストを検証できませんでした。
Google Places APIは現在、Google APIコンソールから生成されたAndroidまたはiOSキーをサポートしていません。現在サポートされているのはサーバーキーとブラウザキーのみです。
Google Place APIでは、API呼び出しを行うときにリファラーHTTPヘッダーが含まれている必要があります。
HTTPヘッダー「Referer:yourdomain.com」を含めると、応答の問題が修正されます。
リファラーなしでキーを作成しますリファラーのアドレスを入力しないでください
また、対応するAPIを特定のプロジェクトに対して有効にする必要があります
https://console.developers.google.com/apis/library?project=projectnamehere
APIの最新バージョンでは、まったく逆のことが当てはまるようです。
URL https://maps.googleapis.com/maps/api/geocode/json?address=<address>&key=<key>
を呼び出すと、次のエラーが表示されました
APIキーを使用して、Google Maps Platform APIへの各リクエストを認証する必要があります。追加情報については、 http://g.co/dev/maps-no-account を参照してください。
順序をhttps://maps.googleapis.com/maps/api/geocode/json?key=<key>&address=<address>
に切り替えると、正常に機能しました。
上記で受け取ったエラーメッセージは、ブラウザのURLに直接アクセスしたときに受け取ったメッセージでした。ソフトウェアプログラムからAPIを呼び出したときに、基本的に次のメッセージを含むHTML応答を受け取りました。
申し訳ありませんが、お使いのコンピューターまたはネットワークが自動クエリを送信している可能性があります。ユーザーを保護するため、現在リクエストを処理することはできません。