2014-01-30 34 views
0

你好我正在嘗試實現一個URL像計數器,但我希望它只考慮來自我的朋友的喜歡。長話短說多少朋友喜歡的網址「http://www.domain.com/somethingFacebook的朋友喜歡在特定的網址上

我一直在想這2天沒有成功,這裏有一些疑問,我與迄今

"query1":"SELECT user_id FROM like WHERE object_id IN (SELECT id FROM object_url WHERE url = '" + url + "') LIMIT 5000" 
"query2":"SELECT url FROM url_like WHERE user_id IN (SELECT uid1 FROM friend WHERE uid2 = me()) AND strpos(url, '"+url+"') = 0" 
"query3":"SELECT total_count, like_count, click_count FROM link_stat WHERE url='"+url+"'", 
"query4":"SELECT url FROM url_like WHERE user_id IN (SELECT uid1 FROM friend WHERE uid2 = me())" 

一些嘗試他們一起工作在fql.multyquery 無論如何,我不斷測試與朋友帳戶,結果是錯誤的,沒有任何作品,我感到非常失望。

我真的很感激一個工作示例或一些指導。

PS:(應用程序已經完全進入一切)

+0

我發表了一個關於[你的類似問題]的答案(http://stackoverflow.com/questions/21459792/facebook-fql-url-likes-of-friends-work-strange/21647892#21647892),可能會幫助你出 – arty

回答

0
SELECT url FROM url_like WHERE user_id IN (SELECT uid1 FROM friend WHERE uid2 = me()) AND url = "<yourURL>" 

應該工作,但事實並非如此。

如果請求超過5秒,Facebook超時。爲了獲取您要求FB的數據,需要搜索每個朋友喜歡的每個網址。另外複雜程度取決於朋友的數量。但絕對是一個複雜的搜索。此外,FQL缺少一些SQL語法,使得複雜的查詢幾乎不可能。 我的建議是查詢所有的朋友鏈接喜歡和迭代他們。

在樣品僞代碼:

X = 50 
count = 0 
friendNumber = queryFriendNumber(); 
for (Y=0;Y<friendNumber; Y+=X) 
    data += SELECT url FROM url_like WHERE user_id IN (SELECT uid1 FROM friend WHERE uid2 = me() LIMIT X OFFSET Y) 
data.forEach(url) 
    if url == "http://miurl.com" then 
     count++ 
print(count) 

記住,你需要閱讀朋友的喜歡的friends_likes許可。

相關問題