代码之家  ›  专栏  ›  技术社区  ›  Gublooo

Facebook graph获得我的喜欢需要75秒或更长时间

  •  1
  • Gublooo  · 技术社区  · 14 年前

    在我的个人资料页面上,我试图从facebook上提取我所有的喜好,并显示每个喜好的详细信息。例如,如果我喜欢的电视节目《宋飞》,我会显示宋飞标志连同有多少人喜欢它等等。

    我使用的是phpsdk,它需要花费很长时间来提取数据。

    目前我只有24喜欢和它需要75秒拉这个数据。

    <pre>
    $likes = $facebook->api('/me/likes');
    
    foreach($likes['data'] as $like) {
    
    $like_item = $facebook->api($like['id']);
    ?>
    <fb:profile-pic uid="&lt;?php echo $like_item['id'];?>" size="square"></fb:profile-pic> 
    <?php 
    echo $like_item['name'];
    ?>
    <fb:like href="<?php echo $like_item['link'];?>"></fb:like> 
    <?
    }
    
    </pre>
    

    你知道为什么要花这么长时间吗。我这样做是对的还是有更好的方法来解决这个问题。 多谢了

    2 回复  |  直到 14 年前
        1
  •  2
  •   Yuliy    14 年前

    你应该能做到 $facebook->api('/me/likes?fields=id,name,link') 一次获取所有需要的数据。

        2
  •  2
  •   Mike Sherov    14 年前

    是啊,还有比这更好的办法!基本上,您要为每个like进行一个额外的API调用。如果您喜欢75个东西,那么您将进行76个API调用,每个调用都可能需要一秒钟。不要迭代$likes,而是执行以下操作:

    $likes_csv = implode(',',$likes['data']);
    $likes_items = $facebook->API('/?ids='.$likes_csv);