Google プレイスへの API 呼び出しを機能させようとして立ち往生しています。リクエストにサーバー側の PHP プロキシを使用しています。これは、そうしたいからではなく、JQuery-POI-Mapperの一部であるためです。
私が使用しているサーバーは、静的 IP アドレスのない Amazon EC2 サーバーです。現時点では静的 IP アドレスが不足していますが、それが問題だと思われる場合は時間をかけて追加をリクエストします. サーバーで次のコマンドを実行して、EC2 サーバーの現在のパブリック IP アドレスを特定しました。
curl http://169.254.169.254/latest/meta-data/public-ipv4
次に、https://code.google.com/apis/consoleに移動し、新しい API キーを作成しました。サーバー側の API キーを選択し、EC2 サーバーのパブリック IP アドレスを使用しました。
[サービス] タブで、考えられるすべての関連 API を有効にしました。
- Google マップ API v2
- Google マップ API v3
- Google Maps Geolocation API
- プレイス API
- 静的マップ API
私のサービスの画面キャプチャは次のとおりです。
EC2 サーバーで実行されているプロキシ コードは商用パッケージの一部であるため、コード全体を掲載するべきではありませんが、コードは非常に短く、重要な部分は次のとおりです。
$json = file_get_contents($url);
私の場合の $url 変数は次のとおりです。
https://maps.googleapis.com/maps/api/place/search/json?location=-37.7133771,145.14891620000003&radius=2000&types=bakery&sensor=false&key=AIzaSyCCUV...
私が得る応答は次のとおりです。
{
"html_attributions" : [],
"results" : [],
"status" : "REQUEST_DENIED"
}
すでに割り当てを超えているかどうかを確認しましたが、すべて問題ないようです。興味深いのは、私が Places API に対して今日リクエストを行ったことを Google が示していることです。つまり、Google は、そのリクエストが私からのものであることを確実に認識しています。
これは私の API トラフィック レポートのスクリーン キャプチャです。これはすべてテストからのものです。
アドバイスをいただければ幸いです。
ありがとう、ブレット