2013-03-30 70 views
1

我已經構建了以下FQL查詢,但我遇到了添加過濾器的問題。通過category_list的FQL查詢

SELECT 
about, 
attire, 
categories, 
checkins, 
company_overview, 
culinary_team, 
description, 
fan_count, 
food_styles, 
founded, 
general_info, 
general_manager, 
hours, 
keywords, 
location, 
mission, 
name, 
page_id, 
page_url, 
parent_page, 
parking, 
payment_options, 
phone, 
price_range, 
products, 
public_transit, 
restaurant_services, 
restaurant_specialties, 
talking_about_count, 
TYPE, 
username, 
website, 
were_here_count, 
pic 
FROM page 
WHERE page_id IN 
    (SELECT 
    page_id, 
    latitude, 
    longitude 
    FROM place 
    WHERE distance(latitude, longitude, '-30.03852', '-51.17877') < 50000 
    LIMIT 10) 

問題是我只想要與餐廳相關的頁面。我想我可以通過頁面表中的「類別」進行過濾,但我不知道使用哪種方法。

我該怎麼做?哪裏是我可以使用的可用方法的文檔(類似categories.contains(「餐廳」))

謝謝!

+0

類別被鍵入爲數組 - https://developers.facebook.com/docs/reference/fql/page – MatheusJardimB

回答

2

type該字段包含您正在尋找的東西。你寫了TYPE,那是錯誤的。

類型(字符串):Page的類型。例如產品/服務,電腦/科技

你需要做的:

SELECT page_id, type, categories 
FROM page 
WHERE page_id IN 
    (SELECT 
    page_id, 
    latitude, 
    longitude 
    FROM place 
    WHERE distance(latitude, longitude, '-30.03852', '-51.17877') < 50000 
    LIMIT 100) 
AND type="RESTAURANT/CAFE" 

...只給你的餐館:

"data": [ 
{ 
    "page_id": 202457279801080, 
    "type": "RESTAURANT/CAFE", 
    "categories": [ 
    { 
     "id": 185459711490789, 
     "name": "Brazilian Restaurant" 
    }, 
    { 
     "id": 168976549819329, 
     "name": "French Restaurant" 
    }, 
    { 
     "id": 163300367054197, 
     "name": "Seafood Restaurant" 
    } 
    ] 
}, 

問題是,在許多情況下,type字段不是由網頁所有者設置的...所以你要通過條目餐廳:

"data": [ 
{ 
    "page_id": 216824565018619, 
    "type": "LOCAL BUSINESS", 
    "categories": [ 
    { 
     "id": 134501539950711, 
     "name": "Sushi Restaurant" 
    } 
    ] 
} 

我甚至不知道這些類別來自哪裏以及如何設置它們。在我看來,這個領域之前使用過,現在已被棄用。 Facebook保留該字段,以便每個頁面不斷顯示這些信息。

根據this post,您不能通過FQL查詢過濾類別。

我建議你要求所有的地方周圍使用您的實際要求和檢查,以使自己的過濾:

  • 類別之一是否包含與餐館關鍵字:restaurantbarsteakhouse等。,
  • type的地方是RESTAURANT/CAFE
+0

太棒了!你說對了!我得到的結果沒有填寫'類型'列。相反,他們有幾個類別。感謝:D +1 – MatheusJardimB