1

我正在为我的 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 响应中得到关注

{
    "debug_info" =     (
    );
    "html_attributions" =     (
    );
    results =     (
    );
    status = "REQUEST_DENIED";
}

我已经重新生成了不起作用的新密钥。有人可以弄清楚我在这里做错了什么。

4

2 回答 2

5

“...Google Places API 当前不支持从 Google API 控制台生成的 iOS 密钥。目前仅支持服务器和浏览器密钥..”

...如果您想请求此支持,请提交Places API - 功能请求..”

从这个答案:https ://stackoverflow.com/a/14744513/1702413

您可以使用 Google Maps JavaScript API v3(Google Maps API v3 的 Places Library

或者..

在 iOS 上工作.. 如果您使用的是像 Sencha Touch 这样的 HTML5 移动应用程序框架.. 您可以查看本教程Create a Location-Aware Site with Sencha Touch

UPD

如果您Key for browser apps (with referers)从 API 控制台使用,则可以正常工作

例如(我正在使用 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];
于 2013-07-18T08:14:28.830 回答
1

这很容易获得Google Places API密钥:

在您创建“Android / iOS”键的地方,有一个用于创建浏览器键的更多按钮。

只需按“创建新的浏览器密钥”并单击“创建”按钮。

“但让身体空着”

有关更多类似问题的详细信息,@Moe 用截图解释了完整的流程。

于 2014-01-03T10:59:44.983 回答