我知道你不能得到朋友的朋友,但是你能以計算有效的方式使用某些查詢來獲得共同的朋友嗎?FQL圖形API:共同朋友
我可以通過我的朋友們遍歷,看看他們中的哪些人是目標朋友嗎?有沒有什麼好的方法可以讓共同的朋友?
我知道你不能得到朋友的朋友,但是你能以計算有效的方式使用某些查詢來獲得共同的朋友嗎?FQL圖形API:共同朋友
我可以通過我的朋友們遍歷,看看他們中的哪些人是目標朋友嗎?有沒有什麼好的方法可以讓共同的朋友?
你可以這樣說:
$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 。
希望這給你你想要的。
我有同樣的問題。雖然回答問題已經很晚了,但它會幫助某人。這就是回答這個問題的原因。
試試這個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));
通過這一點,我們可以得到共同的朋友的信息。
這可能是老了,我需要計算用戶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
我不明白這是如何工作的。我在哪裏放第二個用戶?假設我希望我()和id = 13245之間的共同朋友如何構建該查詢? – JoshDG 2012-01-31 05:37:15
你現在得到了什麼..你有沒有得到一些朋友ID – Sabari 2012-01-31 06:12:01
請檢查我的編輯 – Sabari 2012-01-31 06:54:15