Google Places API响应状态“Request_Denied”

时间:2013-07-17 06:45:17

标签: iphone ios google-maps google-places-api

我正在为我的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";
}

我重新生成了一个不起作用的新密钥。有人可以在这里找出我做错了什么。

2 个答案:

答案 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通过屏幕截图解释完整的流程。