在我的个人资料页面上,我正试图从facebook中提取所有喜欢的内容并显示每个喜欢的详细信息。例如,如果我喜欢电视节目Seinfeld,我会展示Seinfeld的标志以及有多少喜欢它等。
我正在使用php sdk,并且需要永久地提取数据。
目前我只有24个喜欢,需要75秒来提取这些数据。
这是我正在使用的代码
<pre>
$likes = $facebook->api('/me/likes');
foreach($likes['data'] as $like) {
$like_item = $facebook->api($like['id']);
?>
<fb:profile-pic uid="<?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>
任何想法为什么这么长时间。我是以正确的方式做的,还是有更好的方法来解决这个问题。 非常感谢
答案 0 :(得分:2)
是的,有一个比这更好的方法!基本上,你正在为EACH做一个额外的API调用。如果您喜欢75项内容,则需要进行76次API调用,每次调用都需要一秒钟。不要迭代'$ likes',而是:
$likes_csv = implode(',',$likes['data']);
$likes_items = $facebook->API('/?ids='.$likes_csv);
然后你可以用'$ likes_items'
做你想做的事答案 1 :(得分:2)
您应该能够$facebook->api('/me/likes?fields=id,name,link')
一次性获取所有需要的数据。