2012-05-26 46 views
0

使用Foursquare的API PHP省略搜索结果

我对场地进行搜索与夜生活类别:

$params = array("near"=>"92101", "radius"=>"800", "intent"=>"checkin", 
       "categoryId"=>"4d4b7105d754a06376d81259", "limit"=>"50"); 

$venues = $foursquare->GetPublic("venues/search", $params); 

按预期工作...种。问题是餐馆被分为酒吧正在填补我的回报限制。所以在那次搜索中我只能得到几个实际的夜生活场所。如果我可以忽略具有某些类别的场地,这将非常有帮助。得到50个夜生活场所,但不是那些也被称为食物的场所。

我搜索了四周,并不断重新阅读搜索端点页面希望我忽略了省略功能。任何帮助?

回答

0

我们有我们最终什么事做的是进行一些与搜索特定类别相同的问题(不同类别类型)

。 categoryId字段接受多个逗号分隔的类别,所以我们有时最多执行3次带有多个categoryIds的搜索。

所以在要求一个单一类别的立场,你的要求看起来像(没有“棒”,我拿起一对夫妇随机夜生活类):

$params = array("near"=>"92101", "radius"=>"800", "intent"=>"checkin", 
       "categoryId"=>"4bf58dd8d48988d11f941735,4bf58dd8d48988d121941735,...", "limit"=>"50"); 

然后跟另一个请求一般的夜生活

$params = array("near"=>"92101", "radius"=>"800", "intent"=>"checkin", 
       "categoryId"=>"4d4b7105d754a06376d81259", "limit"=>"50"); 

并合并结果。

两件事情与此解决方案注意:

  1. 你可以(可能)得到重叠从多次搜索的结果,因为场地有时有一个以上的类别(如你发现了已经),记得要处理多个结果。我们首先扫描所有结果并根据foursquare ID保存在独特的结果中,然后开始处理。
  2. 该解决方案无法与foursquare API兼容 - 做40次搜索将无法正常工作。(但是没有其他方法可以在没有它的情况下获得所需内容,所以我仍然在此编写整个解决方案)
+0

来自这里的foursquare的Sajid - Jonathan是对的。我们目前不在我们的场地搜索终端提供负面的过滤器。 你可以尝试像乔纳森建议的那样进行多个搜索,并用你不希望客户端的类别进行筛选。 – smehmood