4

我一直在尝试对 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 流量报告的屏幕截图,全部来自测试:

在此处输入图像描述

任何建议将不胜感激。

谢谢,布雷特

4

1 回答 1

1

您需要静态 IP 地址才能通过服务器 API 密钥成功使用 IP 锁定。

于 2013-01-02T05:55:48.647 回答