Facebook算朋友喜欢特定的网址

时间:2014-01-30 22:23:26

标签: javascript facebook facebook-graph-api facebook-fql

您好我正在尝试实施类似于计数器的网址,但我希望它只考虑我朋友的喜欢。长话短说我有多少朋友喜欢网址“http://www.domain.com/something

我现在已经尝试了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 :(应用可以完全访问所有内容。)

1 个答案:

答案 0 :(得分:0)

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

应该有效,但事实并非如此。

如果请求超过5秒,Facebook会超时。要获取您要求FB的数据,需要搜索每个朋友喜欢的每个URL。此外,复杂性取决于朋友的数量。但绝对是一个复杂的搜索。此外,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 权限才能阅读朋友的喜欢。