Foursquare api请求有时会返回错误代码200

时间:2014-03-21 07:21:29

标签: ios iphone foursquare

我使用以下代码为附近的地点请求Foursquare 场地/探索端点:

NSString *key = searchBox.text ? [searchBox.text stringByReplacingOccurrencesOfString:@" " withString:@"%20"] : @"";

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYYMMdd"];
NSString* date = [NSString stringWithFormat:@"%@", [dateFormatter stringFromDate:[NSDate date]]];

[dateFormatter release];

NSString *urlString = [NSString stringWithFormat:@"https://api.foursquare.com/v2/venues/explore?ll=%f,%f&query=%@&radius=50000&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&v=%@", myMapView.userLocation.location.coordinate.latitude, myMapView.userLocation.location.coordinate.longitude, key, date];

大多数情况下,它会按预期返回结果,但有时会返回错误代码200 。从docs我可以看出它意味着我使用了一个弃用的值。我不明白,如果我通过的date导致问题。我试图找出它是否需要特定版本或当前日期。我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

您传递到v参数的日期应该是大于20120609的固定日期。这是您想要的API响应的“版本”,您的应用程序能够解析。有点出乎意料的是200被弃用有时只会回来 - 如果你传递的v param小于20120609,它应该总是回来。

Foursquare偶尔会更改其响应的JSON格式,v param是一种防止这些更改的工具。 (要查看示例,请使用2011010120140101发出请求,并注意结构中的更改)。您应该定期更新此固定日期并检查是否有任何损坏。有关更多信息,请参阅the docs