2012-05-26 86 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