我一直在尝试对 Google Places 进行 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,包括:
- 谷歌地图 API v2
- 谷歌地图 API v3
- 谷歌地图地理定位 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"
}
我检查了我是否已经超过了我的配额,但一切看起来都很好。有趣的是,Google 显示我今天向 Places API 发出了请求,所以 Google 肯定知道这些请求来自我。
这是我的 API 流量报告的屏幕截图,全部来自测试:
任何建议将不胜感激。
谢谢,布雷特