快速加载好友信息

时间:2012-12-27 09:55:10

标签: php sdk facebook-opengraph

我的应用需要用户的朋友信息(生日,图片和名称):

我通过SDK(php)使用Graph API。 我首先通过api('/me/friends')申请好友ID 之后我请求上述信息:api('/id?fields=name,picture,birthday')

为了优化速度,我在批量请求中进行调用。

我的问题是,加载530个朋友需要aprox 40秒,这在我看来很多。我正在使用由其他人开发的类似应用程序,他们在9秒内加载了朋友(相同的信息)。

我想知道你们中是否有人知道如何更快地请求这些信息,或至少解释这种差异的来源。

2 个答案:

答案 0 :(得分:0)

只需使用fql作为 -

,而不是进行如此多的api调用
$fql = "select uid,name,birthday_date from user where uid in (select uid2 from friend where uid1=me())";
$param  =   array(
                   'method'      => 'fql.query',
                   'query'       => $fql,
                   'access_token'=> ACCESS_TOKEN
                 );

$friends_arr = $facebook->api($param);

使用以下方式获取图片的路径:

https://graph.facebook.com/'.$FRIEND_ID.'/picture?type=TYPE

答案 1 :(得分:0)

您可以尝试首次将数据初始加载到本地数据库中,以便您可以使用它来获取更多信息。检索起来要快得多。

如果页面上有很多插件,可能会降低结果的速度(例如,使用类似的插件)。

连接到Facebook所需的时间(延迟)通常是您无法控制的,因此您可以将请求转换为异步请求,并向用户显示其在此过程中正在加载。