2011-11-17 86 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

此時七點,但可能會達到十點。 –