簡體   English   中英

FQL Graph API:共同的朋友

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM