我已阅读过几篇关于Google Places查询返回Request_Denied的评论,但似乎没有任何内容可供我参考。该应用程序是IOS7和Xcode 5.0.2。
我有一个用于IOS应用程序的API密钥。在Google Developers Console中,应用程序包标识符列在凭据页面中,并启用了Places API。
以下是代码的核心:
-(void)queryGooglePlaces: (NSString *)googleType {
NSString *url = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=%f,%f&radius=%@&types=%@&sensor=false&key=%@", currentCenter.latitude, currentCenter.longitude, [NSString stringWithFormat:@"%i",currenDist], googleType, kGOOGLEAPIKEY];
NSLog(@"And the url string is: %@", url);//caveman debuging
NSURL *googleRequestURL = [NSURL URLWithString:url];
dispatch_async(kBgQueue, ^{
NSData *data = [NSData dataWithContentsOfURL:googleRequestURL];
[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
});
}//queryGooglePlaces:googleType
-(void)fetchedData:(NSData *)responseData {
//this is to parse out the json data
NSError *error = nil; //create some error handling here
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
//I'm told the returned results from Google will be an array obtained from the NSDictionary object with the key "results"
NSArray *places = [json objectForKey:@"results"];
//display the data to the console for review
NSLog(@" Google data:\n%@", places);
}//fetchedData:responseData
调试输出中的效果显示json status = Request Denied
key __NSCFString * @“status”0x09a37d10 value __NSCFString * @“REQUEST_DENIED”0x17961870
这里是url字符串的日志, url字符串为:https://maps.googleapis.com/maps/api/place/search/json?location=37.787359,-122.408227&radius=996&types=cafe&sensor=false&key=
我重新生成了API密钥而没有效果。
任何帮助将不胜感激!
答案 0 :(得分:4)
使用Google Places API的浏览器密钥,它可以在iOS应用上正常使用。我在过去两天遇到了类似问题,并使用浏览器密钥解决了问题。
已阅读Google群组:
“Google Places API目前不支持从Google API控制台生成的Android或iOS密钥。目前仅支持服务器和浏览器密钥。”
希望有所帮助
答案 1 :(得分:0)
Google Places API不支持客户端识别的应用程序包标识符方法。您必须创建服务器密钥并将密钥附加到您请求的URL,作为您在URL字符串中列出的key
参数的参数。