1

我正在创建使用自动完成位置 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 密钥:

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

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

4

5 回答 5

1

您应该能够通过首先转到 API 控制台来查看您的 API 密钥: https ://code.google.com/apis/console

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

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

令人沮丧的是,Google 没有提供任何类型的响应代码以及 REQUEST_DENIED,因此您可以了解它为什么拒绝它。如果在没有提供任何详细信息的情况下随机出现,这将很难在生产环境中支持和排除故障。

更新:

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

于 2011-12-03T23:22:15.443 回答
1

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

于 2013-02-24T16:17:26.007 回答
1

我建议使用 .getJson() 来获取错误消息以及您的响应,以了解究竟是什么错误。

对于我的情况:我使用googlePlace!.autocomplete.getJson(value); 并得到以下响应。

{ "error_message" : "You must enable Billing on the Google Cloud Project at https://console.cloud.google.com/project/_/billing/enable Learn more at https://developers.google.com/maps/gmp-get-started", "predictions" : [], "status" : "REQUEST_DENIED" }

于 2022-01-23T00:49:06.740 回答
0

那是错误的 API 密钥。按照此处的步骤获得正确的。

于 2011-12-03T19:54:01.457 回答
0

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

最重要的是,在没有被 Google 提及的情况下(在任何其他地方也是如此)启用 Google Places API Web Service

有了这个,我结束了对我讨厌的问题的 2 天搜索。

当然,请确保您将Key 用于服务器应用程序

于 2015-06-25T18:05:15.243 回答