Facebook 图表获得我的点赞需要 75 秒或更长时间
在我的个人资料页面上,我试图从 Facebook 中提取我所有的点赞,并显示每个点赞的详细信息。例如,如果我喜欢电视节目《宋飞正传》,我将显示宋飞正传徽标以及有多少人喜欢等。
我正在使用 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>
知道为什么它花了这么长时间。我是否以正确的方式这样做,或者是否有更好的方法来解决这个问题。 非常感谢
On my profile page, I'm trying to pull all my likes from facebook and display the detail about each like. For example, if I like the tv show Seinfeld, I will display the Seinfeld logo along with how many like it etc.
I'm using the php sdk and it takes forever to pull the data.
Currently I have only 24 likes and it takes 75 seconds to pull this data.
This is the code I am using
<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>
Any idea why its taking so long. Am I doin it the right way or is there a better way to approach this.
Thanks a bunch
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该能够执行
$facebook->api('/me/likes?fields=id,name,link')
一次获取所有需要的数据。You should be able to do
$facebook->api('/me/likes?fields=id,name,link')
to fetch all of the needed data in one pass.是的,有比这更好的方法!基本上,您正在为 EACH 进行额外的 API 调用。如果您喜欢 75 件事,那么您将进行 76 个 API 调用,每个调用可能需要一秒钟。不要迭代 '$likes',而是:
然后你可以用 '$likes_items' 做你想做的事情
Yeah, there is a much better approach than this! Basically, you're making an additional API call for EACH like. If you like 75 things, you're making 76 API calls, each of which could take a second. Instead of iterating over ‘$likes‘, do:
Then you can do what you want with ‘$likes_items‘