Google会自动填充api - REQUEST_DENIED

时间:2011-12-03 18:53:08

标签: android google-api google-places-api

我正在创建使用自动填充地点google api的应用。

我不知道出了什么问题,但我总是收到回复:

{
    "predictions" : [],
    "status" : "REQUEST_DENIED"
}

我发送请求:https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Paris&types=geocode&language=fr&sensor=true&key=mykey

文档说:

  

REQUEST_DENIED表示您的请求被拒绝,通常是因为缺少传感器参数。

我有传感器参数,可能是带有api键的东西。

是否有任何页面可以获取谷歌的日志:),看看为什么我得到REQUEST_DENIED

我使用api key:

http://code.google.com/intl/pl-PL/android/maps-api-signup.html

也许我必须从其他地方获取api密钥。

4 个答案:

答案 0 :(得分:1)

您应该可以先访问API控制台查看您的API密钥: https://code.google.com/apis/console

如果您还没有,则需要创建一个新的“项目”,然后使用On / Off开关首先启用Predictions服务。

请发布您的结果,我在获取REQUEST_DENIED响应方面遇到类似的问题,但我已经获得了API密钥,并且我正在使用传感器参数,例如他们的文档状态。

令人沮丧的是,谷歌没有提供任何类型的响应代码以及REQUEST_DENIED,所以你可以看出它为什么否认它。如果在没有提供任何有关原因的详细信息的情况下随机出现,这将很难在生产环境中进行支持和排除故障。

更新

我刚刚发现这对我有用,但只是在将我的请求更改为GET请求而不是POST之后。由于未知原因,Google会针对POST请求返回REQUEST_DENIED,但通过GET允许相同的请求。快速测试一下,看看这是否是您的问题,将URL与您的API密钥和其他参数放在一起,然后通过浏览器进行尝试。如果可行,则只需重写您的Android代码即可使用GET而不是POST,您应该全部设置。

答案 1 :(得分:1)

当我交换API密钥时,它已经解决了。我在Android设备下使用的那个,我将其更改为“浏览器应用程序的密钥(带有引用者)”,虽然我使用的是Android设备,但它对我有用。

答案 2 :(得分:0)

这是错误的API密钥。按照here步骤获得正确的步骤。

答案 3 :(得分:0)

确保正确生成API密钥并确保已启用必要的APIS。 就我而言,在设计iOS应用程序时 - 我需要启用适用于iOS的Google Maps SDK,适用于iOS的Google Places API

最重要的是,谷歌(在任何其他地方也没有提及)启用Google Places API网络服务

有了这个,我结束了为期两天的搜索我的讨厌问题。

当然,请确保使用用于服务器应用程序的密钥