2011-11-17 150 views
0

我想为我们运行的几个facebook广告系列(此刻的七个广告系列)写一个简单的跟踪系统。 该系统的一个关键特性是能够实时查看所有这些页面的相似数量,所以我编写了一个简单的php代码,以便从图表api中为每个页面获取相同的计数,并且我每隔几秒。 问题是Facebook的响应速度缓慢,需要大约2秒才能得到响应,并且可能会达到20(!!!)秒。 这里是我写的,以获得像计数功能:Facebook的图形api非常缓慢时提出多个请求

function getlikes($pageid){ 
echo json_decode(file_get_contents("http://graph.facebook.com/" . $pageid . "?fields=likes"))->likes; 
}; 

是否有周围没有任何办法吗?或者graph-api只是很慢,我不得不用一些优雅的解决方案来处理它?

谢谢。

回答

0

我劝你缓存就像在服务器上的某个地方一样,以便快速地发出AJAX请求(如果有多个客户端正在观看计数,则会更好)。在服务器端应该有一个更新类似计数缓存的cron作业。

为了加速从Facebook获取计数,您可以将所有请求与curl多请求同时发出。如果您有兴趣,请查看rolling curl

+0

谢谢,我有他的想法,但在那一刻似乎过于复杂。 我想,没有办法缓存相似的计数。 –

0

也许你需要使用一个访问令牌用这种方法,不知道为什么它在我的本地主机不工作,但是从图中的探险家工作得很好

<?php 
$pageids = array('xxxxxxxx'); 
$likes = json_decode(file_get_contents("http://graph.facebook.com/fql?q=SELECT page_id, fan_count FROM page WHERE page_id IN(". implode(',', $pageids) .")")); 
?> 

https://developers.facebook.com/tools/explorer

+0

我的功能是服务器端,它是用PHP编写 –

+0

让那么我测试..多少页你有吗? – norman784

+0

此时七点,但可能会达到十点。 –