![](/img/trans.png)
[英]Facebook Graph API get average amount of users “friends of friends” using fql
[英]FQL Graph API: Mutual Friends
我知道您无法结交朋友,但是您可以通过一些查询以高效计算的方式结交共同的朋友吗?
我什至可以遍历我的朋友,看看其中有哪些是目标朋友? 有什么好的方法来认识共同的朋友?
您可以这样做:
$facebook = new Facebook(array(
'appId' => FB_ID,
'secret' => FB_APP_SECRET,
'cookie' => true,
));
$fql = "SELECT id FROM profile WHERE id IN (SELECT uid2 FROM friend WHERE uid1=me())";
$response = $facebook->api(array(
'method' => 'fql.query',
'query' =>$fql,
));
这将返回共同朋友的ID。 希望这对您有所帮助:)
编辑:
如果您想在您和id = 13245之间获得共同的朋友,那么您可以这样做:
$facebook = new Facebook(array(
'appId' => FB_ID,
'secret' => FB_APP_SECRET,
'cookie' => true,
));
$fql = "SELECT uid1, uid2 FROM friend WHERE uid1 IN (SELECT uid2 FROM friend WHERE uid1=me() AND uid2 = '13245' ) AND uid2 IN (SELECT uid2 FROM friend WHERE uid1=me())";
$response = $facebook->api(array(
'method' => 'fql.query',
'query' =>$fql,
));
它将返回所有共同的朋友id。
希望这能给您您想要的。
这可能很旧,我需要计算用户X和我之间的共同朋友,并发现@Sabari答案很有用,但它有一个错误(不必要的内部查询)
SELECT uid2 FROM friend WHERE uid1=me() AND uid2 = '13245' )
此内部查询将给出一个结果(13245),因为好友表具有两列(均由表的主键组成),而where子句在两列上都加了条件。
因此,删除此内部查询后的整个查询应为:
SELECT uid1, uid2 FROM friend where uid1='13245' and uid2 in (SELECT uid2 FROM friend where uid1=me())
该查询计算出也是我的朋友的所有'13245'朋友( where uid1='13245'
)的列表(内部查询)
这是我的代码以获得python中共同朋友的列表
def get_friends_ids(id):
query = "select uid1,uid2 from friend where uid1=\"" + str(id) + "\" and uid2 in (select uid2 from friend where uid1=me())"
query = urllib2.quote(query)
url = "https://graph.facebook.com/fql?q=" + query + "&access_token=" + access_token
data = urllib2.urlopen(url).read()
j = json.loads(data)
ids = []
for record in j['data']:
ids.append(record['uid2'])
return ids
我有同样的问题。 尽管回答问题已经很晚了,但是它将对某人有所帮助。 这就是为什么回答这个问题。
试试这个fql查询:
$query="SELECT uid, name, work, education FROM user WHERE uid!=$source_id AND uid IN
(SELECT uid1, uid2 FROM friend WHERE uid1 IN (SELECT uid2 FROM friend WHERE uid1=$target_id AND uid2 = '$source_id' )
AND uid2 IN (SELECT uid2 FROM friend WHERE uid1=$target_id)) ORDER BY name";
$user_info=$this->facebook->api(array('method'=>'fql.query',
'query'=>$query));
通过这种方式,我们可以获得共同的朋友信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.