我正在尝试使用Google Places API获取我所在位置的地点。
以下是代码,用于点击地点搜索的网址。
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应用程序)?所以,另一个问题是,我可以在所有三个平台上使用相同的密钥吗?
答案 0 :(得分:7)
我拿了你的网址并替换了我知道有用的密钥,并得到了预期的结果。乍一看,我猜测您复制/粘贴了错误的密钥,或者您没有在API控制台中为项目启用了该密钥与项目的Places API。
请务必注意,每个项目都可以启用不同的服务 - 您必须为要使用它的每个项目手动启用Places API - 您是否可以确认它已在控制台中启用并且密钥已准确复制?
答案 1 :(得分:0)
如果缺少必需参数,也会出现此错误消息。
例如,我在使用Places API的/autocomplete
端点时遇到了类似的问题。
向https://maps.googleapis.com/maps/api/place/autocomplete/json?key=XXXXXXXXXXXXXXXXXX&input=San发送请求,我收到了这样的回复:
{
"predictions" : [],
"status" : "REQUEST_DENIED"
}
即使它看起来像权限问题(至少对我而言),但事实证明我只是缺少必需的sensor
参数。