0

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

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

为了优化速度,我以批量请求的形式进行调用。

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

我想知道你们中是否有人知道我怎样才能更快地请求这些信息,或者至少解释一下这种差异的来源。

4

2 回答 2

0

Instead of making so many api calls, simply use the fql as-

$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);

Get the path of the picture using:

https://graph.facebook.com/'.$FRIEND_ID.'/picture?type=TYPE
于 2012-12-27T10:20:08.737 回答
0

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

如果您的页面上有许多插件,则可能会减慢结果(例如,使用类似的插件)。

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

于 2012-12-27T10:22:27.133 回答