我正在尝试从Facebook的FQL请求一些信息,但请求有点慢。
$friend = "SELECT uid2 FROM friend WHERE uid1 = me() LIMIT 30";
$friendSQL = $facebook->fql($friend);
foreach ($friendSQL as $friends_id){
$uid2 = $friends_id['uid2'];
$query = "SELECT uid,username,name,pic_small FROM user WHERE uid='".$uid2."'";
$friend_info = $facebook->fql($query);
echo "<pre>";
print_r($friend_info);
echo "</pre>";
}
所以基本上,我得到了30个朋友的列表,我正在尝试使用foreach循环从uid2
(这是我的朋友)获取其他信息
我注意到请求很慢。有没有其他方式获取我的朋友的信息?
谢谢!
答案 0 :(得分:2)
您的select语句可能类似于:
SELECT uid,username,name,pic_small FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me() LIMIT 30)
所以你不必再使用循环了。这与FQL Multiquery几乎相同。
答案 1 :(得分:1)
您的脚本很慢,因为它在每次迭代中都会发出新的HTTP请求,并且每个新请求都会占用大量时间。正确的方法是使用FQL.multiquery。使用multiquery,您可以在一个HTTP请求中获得所需的所有信息,而无需使用foreach。