【问题标题】:Loading friends information quicker加载好友信息更快
【发布时间】:2012-12-27 09:55:09
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: php sdk facebook-opengraph


    【解决方案1】:

    不用做这么多的api调用,只需使用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);
    

    获取图片路径:

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

    【讨论】:

    • 谢谢!明天试一试,让你知道结果!
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      • 2011-01-02
      • 2014-06-03
      相关资源
      最近更新 更多