谷歌地点API请求(sensor=true)的响应中出现了“REQUEST_DENIED”的错误提示

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”的常见原因是“sensor”参数值不正确。但在我的情况下,我也提供了正确的值。
任何想法我做错了什么吗?
另外,我正在使用的APIKey是通用的,可以用于Android、iPhone和BlackBerry上开发的应用程序。这有效吗?或者,我需要另一个APIKey(专门针对我的iPhone应用程序)?所以,另一个问题是,我可以在所有三个平台上使用相同的密钥吗?

2个回答

7
我拿到了你的URL,并替换了一个我知道可用的密钥,得到了预期的结果。乍一看,我猜测你要么复制/粘贴密钥时出错了,要么你还没有在API控制台中为该密钥所关联的项目启用Places API。
需要注意的是,每个项目可以启用不同的服务 - 你必须手动为想要使用Places API的每个项目启用它 -- 你能确认在控制台中已经启用了它并且密钥被准确地复制了吗?

1
它在API控制台中没有启用。现在,它正常工作了。感谢您的时间。 - viral
@jlivni Google Places API能够与原生IOS应用程序一起使用吗? - Pranav Jaiswal
@Pranav 确实,这只是一个类REST的API -- 你可以从你的本地应用程序向Places API发出HTTP请求并解析结果以按照你的意愿显示(在服务条款内)。 - jlivni

0

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

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

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接