我正在使用Foursquare API this API和SwiftyJSON在Swift中创建一个iOS项目。有没有办法让Venue结果符合某个价格等级?
我理解如何接收包括价格等级在内的场地结果,但是,除了检查价格等级并过滤掉相关价格等级之外,我不确定如何接收仅匹配特定价格等级的场地。
编辑: 我目前的代码如下:
func setUpFoursquare(){
let client = FoursquareAPIClient(clientId: "JMBLK0SDZ0N2NF5TG3UCLMOF4FA5FKA14AIOZ4P4TS4MHEWO", clientSecret: "*****")
let parameter: [String: String] = [
"near": "Toronto",//destination!,
"limit": "4",
"query": "sushi",
"price": "1",
];
print("Parameter: \(parameter)");
print("client: \(client)");
//The path is based on the request link. For example, the request link for photos is:
//GET https://api.foursquare.com/v2/venues/VENUE_ID/photos
//So the path would correspond tovenues/VENUE_ID/photos where VENUE_ID is the corresponding ID.
client.request(path: "venues/search", parameter: parameter) { result in
// client.request(path: "venues/categories", parameter: parameter) { result in
switch result {
case let .success(data):
print("Success")
guard let json = try? JSON(data: data) else{
print("\(#function): Unable to retrieve json object")
return
}
print("Json: \(json)")
if json["meta"]["code"] == 200{
self.parse(jsonObject: json)
}
case let .failure(error):
// Error handling
switch error {
case let .connectionError(connectionError):
print(connectionError)
case let .responseParseError(responseParseError):
print(responseParseError) // e.g. JSON text did not start with array or object and option to allow fragments not set.
case let .apiError(apiError):
print(apiError.errorType) // e.g. endpoint_error
print(apiError.errorDetail) // e.g. The requested path does not exist.
}
}//end switch
}//end client.request
}
然而,“价格”:“1”参数实际上并没有改变结果。
答案 0 :(得分:0)
使用venues/explore
端点,您可以按价格级别过滤结果。请参阅此处的文档:https://developer.foursquare.com/docs/api/venues/explore
具体来说,您需要使用price
参数:
以逗号分隔的价格点列表。目前的有效范围 价格点是[1,2,3,4],1是最便宜的,4是 最贵的。对于食品场所,在美国,1是< 10美元一个 主菜,2是主菜10至20美元,主菜3美元20至30美元,4是主菜。 30美元一个 主菜。
使用您链接的API包装器,看起来像这样......
let parameter: [String: String] = [
"ll": "35.702069,139.7753269",
"limit": "10",
"price": "1,2"
];
client.request(path: "venues/explore", parameter: parameter) { result in
// do your SwiftyJSON stuff
}