2011-11-21 55 views
2

我試圖獲得用戶和他的朋友之間普通喜歡列表(公共)。我認爲這FQL查詢的工作,但我發現了一個未知的用戶錯誤:從朋友列表中獲取公共信息頁面的常見「喜好」的最佳方式

--get PAGE_ID你有任何的你的朋友有

https://api.facebook.com/method/fql.query?query= 
select uid, page_id from page_fan where uid in (SELECT uid2 FROM friend WHERE uid1 = me()) and page_id in (select page_id from page_fan where uid= me()) 
&access_token=ABC 

我得到這個錯誤:

<error_response><error_code>1</error_code><error_msg>An unknown error occurred</error_msg></error_response> 

有什麼建議嗎?

回答

3

看來,結果集是API的方式來處理大。你最好的選擇是試圖通過查詢一組朋友對照用戶的喜好或一次查詢一個,兩個...等頁面來嘗試限制結果集(如果這也沒有奏效,請嘗試LIMIT你的朋友說100以確保你實際上得到了一些東西)。查詢Example

select uid, page_id 
from page_fan 
where uid in (
    SELECT uid2 
    FROM friend 
    WHERE uid1 = me() 
) and page_id in (
    select page_id 
    from page_fan 
    where uid= me() 
    LIMIT 1 
) 

顯然存在FQL沒有offset。所以首先,你需要檢索用戶的喜好,然後對它們進行查詢。您始終可以使用batch api在單個批次呼叫中進行多個呼叫。從page_fan

+0

謝謝你,你是絕對正確的,結果集必須是太大。我已經能夠通過對「從朋友中選擇uid2」查詢設置限制來獲得結果。我要去嘗試多查詢fql,看看這是否是更好的選擇 –

+0

當然,您也可以使用批量API的多查詢! – ifaour

+0

看起來即使FQL沒有偏移,你仍然可以在where子句中過濾,即「and uid> 248012123 LIMIT 50」,然後使用新的uid循環遍歷該方式。 –

0

SELECT PAGE_ID其中uid =我()和PAGE_ID IN(選擇page_fan PAGE_ID其中uid =給出其中HID)

相關問題