我正在为我的iOS应用程序使用Google Places API。我已经启用了Google Maps Android API v2,来自API控制台的Places API。在API访问部分创建了一个iOS密钥。我正在使用以下代码向Google Places API提出请求:
NSString *finalString = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=%f,%f&radius=5000&keyword=restaurants&sensor=false&key=PASTE_GENERATED_KEY_HERE",_location.coordinate.latitude,_location.coordinate.longitude];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:finalString]];
但是我在JSON Response
中得到了关注{
"debug_info" = (
);
"html_attributions" = (
);
results = (
);
status = "REQUEST_DENIED";
}
我重新生成了一个不起作用的新密钥。有人可以在这里找出我做错了什么。
答案 0 :(得分:5)
“... Google Places API目前不支持从Google API控制台生成的iOS密钥。目前仅支持服务器和浏览器密钥..”
...如果您想申请此支持,请提交Places API - Feature Request ..“
来自这个答案:https://stackoverflow.com/a/14744513/1702413
您可以使用Google Maps JavaScript API v3(Places Library of the Google Maps API v3)
或..
正在使用iOS ..如果您使用的是像Sencha Touch这样的HTML5移动应用程序框架..您可以查看本教程Create a Location-Aware Site with Sencha Touch
<强> UPD 强>
如果您使用API控制台中的Key for browser apps (with referers)
,正在运行 例如
(我正在使用AFNetorking):
NSURL *url = [NSURL URLWithString:@"https://maps.googleapis.com/maps/api/place/textsearch/json?query=restaurants+in+Sydney&sensor=true&key=yourKEYforBrowser"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSArray *result = [JSON valueForKeyPath:@"results"];
NSLog(@"Google Resp: %@", result);
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON)
{
NSLog(@"error");
}
];
[operation start];
答案 1 :(得分:1)
很容易获得 Google Places API 键:
在您创建“Android / iOS”键的位置,还有一个用于创建浏览器键的按钮。
只需按“创建新浏览器密钥”,然后单击“创建”按钮。
“但请将身体留空”
有关详细信息similar question,@ Mye通过屏幕截图解释完整的流程。