我有一个带有帖子的网站,我正在对它们实现 Facebook 评论。所有的帖子都在一个页面上,每个帖子下面都有一个“评论(3)”链接。单击此按钮后,它将转到此帖子的评论页面,显示 Facebook 插件。
我的问题是从“comments(3)”中获取 3 需要一段时间...我该如何优化它?这是评论页面的样子:https://graph.facebook.com/?ids=http://example.com/
在我收到评论的页面上,这是我对每个帖子的看法:
echo $postsClass->getCommentsCount($post['id'])
然后这是 getCommentsCount 函数的样子:
public function getCommentsCount($postId) {
$commentsCount = 0;
$url = 'http://myurl.com?post=' . $postId;
$html = file_get_contents('http://graph.facebook.com/?ids=' . $url);
$comments = json_decode($html, true);
if (array_key_exists('comments', $comments[$url])) {
$commentsCount = $comments[$url]['comments'];
}
return $commentsCount;
}
加载 6 个帖子的评论似乎需要大约 3 到 4 秒......关于如何改进它有什么想法吗?
谢谢!
最佳答案
Facebook Graph API 支持 Real-time Updates通过订阅系统。
我不确定更改通知是否有延迟;但是,它保证更有效率。 当您收到更新时,只需将结果缓存在您的数据库中以便快速检索。 请注意,如果您要订阅许多快速变化的对象,这可能是一个很重的负载。
另一种方法是安排您的服务器每隔一段时间(每隔几分钟?)轮询评论并存储信息。
或者,您可以显示页面,然后让用户的浏览器通过 AJAX 查询评论数。用户可以通过您的服务器检索信息,或者如果他们可以访问上下文中的对象,则直接从 Facebook 检索信息。
关于php - 快速从 facebook graph api 获取信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7989130/