3

我正在尝试使用 Google Places API 获取我所在位置周围的位置。

以下是用于点击 URL 进行地点搜索的代码。

NSString *URL = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&sensor=true&key=0dp-j3dkCU_YUb97RHcbL5shmRrJ5R2y4bYz1Vw"];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:URL]
                                                           cachePolicy: NSURLRequestReloadIgnoringLocalCacheData
                                                       timeoutInterval: 4];
[request setValue:@"application/json" forHTTPHeaderField:@"accept"];
NSObject *id1 = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];

这让我得到以下 JSON 格式的响应。

{
  "html_attributions" : [],
  "results" : [],
  "status" : "REQUEST_DENIED"
}

在搜索 Google Places API 时,它说不正确的传感器参数值是“REQUEST_DENIED”的一般原因。但是,就我而言,我提供的也是正确的。

任何想法我哪里错了?

同样,我使用的 APIKey 对于在 Android、iPhone 和 BlackBerry 上开发的应用程序来说很常见。那有效吗?或者,我是否需要另一个 APIKey(特定于我的 iPhone 应用程序)?所以,另一个问题是,我可以在所有三个平台上使用相同的密钥吗?

4

2 回答 2

7

我取了你的 URL 并替换了一个我知道有效的密钥,并得到了预期的结果。乍一看,我猜测您复制/粘贴的密钥不正确,或者您没有在 API 控制台中为与此密钥关联的项目启用 Places API。

需要注意的是,每个项目都可以启用不同的服务——您必须为要使用的每个项目手动启用 Places API——您能否确认它已在控制台中启用并且密钥已准确复制?

于 2012-01-12T18:35:27.030 回答
0

如果您缺少必需的参数,也会出现此错误消息。

例如,我在使用/autocompletePlaces API 的端点时遇到了类似的问题。

向https://maps.googleapis.com/maps/api/place/autocomplete/json?key=XXXXXXXXXXXXXXXXXX&input=San发送请求,我收到如下响应:

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

尽管它看起来像是一个权限问题(至少对我而言),但事实证明我只是缺少一个必需的sensor参数。

于 2014-03-13T19:04:44.093 回答