错误地获取登录用户的朋友的朋友列表Facebook的php-sdk

问题描述:

我能够获得登录的用户的朋友的朋友列表,但有限的朋友(应用程序用户),除了一个朋友以外拥有较少的朋友的朋友列表。错误地获取登录用户的朋友的朋友列表Facebook的php-sdk

等我解释详细。

我能够得到那些是应用程序用户的朋友的朋友列表。我的8个朋友是应用用户。我可以给7个朋友的朋友,但我无法得到一个朋友的朋友。一个不同之处发现,他是有300左右。

3300的朋友别人我收到此错误

[Fri Mar 02 18:20:44 2012] [error] [client 192.168.1.2] PHP Fatal error: Uncaught Exception: 18: This API call could not be completed due to resource limits\n thrown in /var/www/jobjasoos/system/libraries/base_facebook.php on line 1040

我认为这是因为大没有。的朋友。有什么办法可以避免这个错误?

我正在使用这个fql查询。

$query="SELECT uid, name, work FROM user WHERE is_app_user=1 AND uid IN (SELECT uid2 FROM friend WHERE uid2 IN (SELECT uid2 FROM friend WHERE uid1 = $current_user)) ORDER BY name"; 

$user_info=$facebook->api(array('method'=>'fql.query', 
      'query'=>$query)); 

我看到以下链接,并没有得到任何线索。

+0

现在这个查询有时给人完美的结果,但有时它给为零。我的问题是为什么fql在不同的事务中表现不同? – 2012-03-05 06:55:22

写这两条线路,以避免超时调用Facebook的时候再调用Facebook的API。

set_time_limit(0); 
ini_set("memory_limit", "1024M"); 

$query="SELECT uid, name, work FROM user WHERE is_app_user=1 AND uid IN (SELECT uid2 FROM friend WHERE uid2 IN (SELECT uid2 FROM friend WHERE uid1 = $current_user)) ORDER BY name"; 

$user_info=$facebook->api(array('method'=>'fql.query', 
       'query'=>$query)); 

您的服务器未配置为下载有这么多的信息的请求。你可以尝试重新配置你的服务器,但我会建议重新设计你的应用程序(如果可能)。也就是说,使用JavaScript SDK而不是PHP来获取好友列表。这会将带宽使用从服务器卸载到客户端。我的应用程序使用JS SDK下载5000个没有问题的朋友。

要继续使用PHP,在这里看到: How can I optimize my FQL to avoid Facebook timeouts?

+0

我无法使用JavaScript SDK。如何配置服务器以下载包含如此多信息的请求? – 2012-03-05 06:16:41

$friends = $facebook->api('me/friends'); 
//print_r($friends['data']); 
print_r("Number of Friends: ". count($friends['data'])); 
foreach ($friends['data'] as $key=>$listOfFriends) { 
    echo "<br/>".$key." ".$listOfFriends['name']."<img src='https://graph.facebook.com/".$listOfFriends['id']."/picture' width='50' height='50' title='".$listOfFriends['name']."' />";  
} 
+0

问题是得到朋友的朋友列表。您的答案会给出登录用户的朋友列表。 – 2012-06-15 15:03:48