使用Google Places API时REQUEST_DENIED

时间:2011-12-08 08:11:43

标签: api google-maps google-maps-api-3

我正在尝试使用以下网址向Google Places API发出请求:https://maps.googleapis.com/maps/api/place/search/xml?location=37.77264,-122.409915&radius=500&types=educational%20services&name=everest%20college%20san%20francisco&sensor=false&key=YourApiKey

这是我得到的回复:

<PlaceSearchResponse>
  <status>REQUEST_DENIED</status>
</PlaceSearchResponse>

知道上述网址有什么问题吗?

12 个答案:

答案 0 :(得分:14)

重要提示:转到api控制台here,然后转到“服务”并检查“Places API”是否已打开

答案 1 :(得分:7)

也许您应该在要发送的网址末尾添加“&amp; sensor = true / false”。

答案 2 :(得分:6)

注意: - 我已经在Android APP中实现了它。

我遇到了与此API相同的问题..

网上提供的大多数解决方案/建议都是关于错误的密钥。

但是如何获得合适的密钥?关于这个问题的帮助很小。

在我的案例中,唯一原因背后是错误的关键

我使用我的Android Key (The one we use for google Maps)访问google places,这就是为什么它给了我 ACCESS DENIED 响应。

经过几个小时的努力,我在Google API文档中注意到某处有截图如何创建KEY

因为我注意到他们使用的密钥在"Key for browser apps (with referers)"

而我使用的是"Key for Android apps (with certificates)"

.....

to get the respective key We need to create a Browser Key.

我最初使用的密钥是

enter image description here

所需的密钥 enter image description here

获取所需的密钥: - 只需点击"Browser Key",然后再次点击输入,询问某些网址是否为强制性字段

enter image description here

有关如何在ANDROID refer this link

中使用它的更多详细信息

不要忘记从API控制台

打开服务"Places API"

答案 3 :(得分:4)

很高兴看到这么多解决方案。让我在列表中添加另一个。您还可以尝试将端口地址更改为443以从Places API

获取响应

答案 4 :(得分:2)

在我的情况下,问题是我尝试使用Android的API密钥(这似乎相当合乎逻辑),但后来我尝试将其更改为浏览器的API密钥,它现在终于正常工作。为什么?不要问我。 :)

希望有所帮助。

答案 5 :(得分:1)

你的密钥似乎无效,正如@Bryan Weaver在评论中提到的那样。在请求中替换我自己的密钥会返回ZERO_RESULTS。

顺便说一下,您还应该查看list of supported types - 教育%20服务不是其中之一。这不是给你REQUEST_DENIED的东西,但无论如何它都值得修复。如果您想要指定多个类型,请使用管道(|)分隔它们。

答案 6 :(得分:1)

我遇到了同样的问题,一直拒绝请求。

我仔细检查以确保我的API密钥是正确的,我没有意识到我需要从API控制台创建一个新的服务器密钥。现在我得到ZERO结果,而不是被拒绝的消息。

答案 7 :(得分:1)

我的情况是我打开了API,我生成了API密钥,但我还添加了一些IP地址来限制API请求的来源。但是,如果您在本地进行开发,则不应设置任何IP地址,因为IP地址可能来自路由器(192.168.1.120)或来自ISP(238.382.33.298)或其他任何地方&#39 ;无法通过IP地址限制API请求。

在本地开发时,将其设置为空白。

当您部署到具有固定IP地址的生产或其他开发服务器时,请将其设置为服务器的IP地址。

答案 8 :(得分:0)

Places API与maps API不同。请在API控制台上单独启用Places API

答案 9 :(得分:0)

在此处转到api控制台,然后转到“服务”。单击“活动服务”选项卡,然后验证“Places API”是否已打开。点击?旁边的“尝试”链接。它应该使用您的密钥创建一个适当的URL,这应该有效。将您尝试针对此网址尝试的链接进行比较。

答案 10 :(得分:0)

在我的情况下,它是HTTPS而不是HTTP以及一个小的范围。

答案 11 :(得分:0)

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

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

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