如何从喜欢给予页面的用户那里获得所有朋友?

时间:2012-04-04 19:59:56

标签: facebook-graph-api facebook-fql fql.multiquery

我怎样才能让所有喜欢某个页面的朋友没有遍历朋友列表和该朋友的喜欢列表?

dumbway就像:

friends_like_page = []
for f in friends:
   for l in friends.like:
      if l = page_id:
        friends_like_page.append(f)

但我想知道是否有办法为此构建FQL查询。

进阶#2并已解决:

使用@Igy的建议我可以解决它。我在那里发布了答案。无论如何,我接受了Igy的回答,因为他的想法帮助了我。

进阶#1:

好的,我现在就知道了:

抓取所有朋友:

SELECT uid2 FROM friend WHERE uid1 = me()

从用户 UID获取页面粉丝

SELECT uid, page_id FROM page_fan where uid = UID

联合

SELECT uid, page_id FROM page_fan WHERE uid in (SELECT uid2 FROM friend WHERE uid1 = me())

但是,它似乎没有正常工作。发生了什么事?

2 个答案:

答案 0 :(得分:3)

你无法获得一个喜欢页面的人的列表,你总是需要从用户开始并回到页面 - 最快的方法是批量检索用户的朋友喜欢查询并将结果与​​一些数组搜索运算符进行比较

答案 1 :(得分:3)

所以,经过一整天的战斗,我终于解决了它。正如@Igy所说,我构建了一个批处理请求,在这里:

curl https://graph.facebook.com \
    -F 'access_token=...' \
    -F 'batch=[
             {"method": "GET",
                "name" : "get-friends",
                "relative_url": "me/friends",
              },
              {"method": "GET",
                "relative_url": "likes/?ids={result=get-friends:$.data.*.id}"
              }
    ]'