2009-07-26 125 views
0

我怎樣才能讓我的當前UID與FQL ..我想節省流量並請求與得到用戶的朋友與fql.multiquery的Facebook當前UID與FQL

「QUERY1」:獲得需要我USERID 「query2」:「SELECT uid,first_name,last_name FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 = MYUSERID)order by first_name」

應該返回我的朋友!掌握friends.get用戶,然後users.getInfo需要2個請求,是不是最佳...

謝謝

回答

4

你的第一個查詢應該是完全不必要的,如Facebook總是提供給uid通過一個應用程序fb_sig_user參數(POST或GET)。我不確定您可以使用哪種FQL查詢來獲取基於其他形式信息的uid。沒有sessions表或FQL可用的任何內容(可用表格列出here)。

但是,對於多重查詢,我相當確定this page正確地描述了你需要做的事情,但是我會以我將要做的方式拋出一些代碼。

如果這是一個PHP應用程序,我想做到這一點的服務器端,我會創建幾個JSON格式的字符串並將它們作爲一個查詢,如下所示:

$fql= '{ 
"userinfo":"SELECT uid FROM user_standard_info WHERE first_name=\'zombat\'", 
"friends":"SELECT uid2 FROM friend WHERE uid1 IN (SELECT uid FROM #userinfo)}" 
}'; 
$res = $facebook->api_client->fql_multiquery($fql); 

print_r($res['userinfo']); 
print_r($res['friends']); 

這應該產生轉儲您的查詢結果。

假設你有你的當前uid可從fb_sig_user參數(你應該),那麼你的問題應該可以通過類似這樣解決:

$fql= '{ 
"friends":"SELECT uid2 FROM friend WHERE uid1='.$your_uid.'," 
"friendinfo":"SELECT * FROM standard_user_info WHERE uid IN (SELECT uid2 FROM #friends)" 
}'; 
$res = $facebook->api_client->fql_multiquery($fql); 

注意:您可能需要您仔細看看你正在嘗試做的一些查詢。許多表格(如friend)只能在處理登錄用戶時使用。

1

函數me()返回您的用戶ID在FQL。

爲了讓您的朋友列表,你可以使用:

SELECT uid, first_name, last_name 
FROM user 
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) 

你可以找到這個位置的文檔:http://developers.facebook.com/docs/reference/fql/