来自服务器请求的Google Places REQUEST_DENIED - 没有任何作用

时间:2012-08-20 09:25:51

标签: google-places-api google-places

经过几个小时的搜索并尝试在网络上找到的所有可能的解决方案,我无法为我的问题尝试其他任何问题,所以我真的需要帮助:

我想实现一个带有地理编码结果的简单自动填充文本框,因此我在用户输入文本框时调用AJAX请求

  • 我已从Google API控制台启用了Google地图和Google商家信息
  • 我使用服务器的IP
  • 创建了服务器应用程序的密钥
  • 我在服务器上运行了一个PHP文件(通过AJAX调用),该文件使用file_get_contents()函数将请求发送到Google Places(启用了SSL) - 也尝试使用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是我创建的密钥

  • 我得到的回应是

{“predictions”:[],“status”:“REQUEST_DENIED”}

  • 我还尝试使用浏览器密钥。还尝试创建一个新项目,重新启用服务,并创建新密钥。开关服务开/关&以任意组合多次创建新密钥。没有任何效果。

  • 奇怪的是,相同的代码在我在服务器上创建的登录页面中的最后几个月工作,但是有很长时间检查它,所以我不知道它何时停止工作。 / p>

我非常感谢任何帮助!!谢谢。

3 个答案:

答案 0 :(得分:5)

已解决。在Google API控制台中,我已声明了允许的服务器IP。我假设如果我宣布一个IP,我只是确保只允许来自该IP的请求。为了使其工作,您还必须为每个IP声明允许的每用户限制,否则它只是不允许任何请求。我删除了所有允许的IP,等待3-4分钟,并且允许请求​​。

答案 1 :(得分:1)

答案 2 :(得分:1)

我遇到了类似的问题,修复了它并发现了一些可能有助于解决这个问题的事情

  • 使用http代替https将导致REQUEST_DENIED
  • 省略& userIp = x.x.x.x将导致REQUEST_DENIED
  • 如果请求来自php脚本,则需要生成并使用服务器密钥,即使用户仅通过浏览器使用它也会导致REQUEST_DENIED
  • 在测试之前需要几分钟,如果允许更改的IP列表

希望它可以帮助你们中的一些人