2011-09-09 108 views
0

我有一個網站有很多新聞,但我想知道是否有任何方法我可以按我喜歡的文章排序我的文章?以及如何通過在一天內更新所有文章x次來殺死我的服務器?通過臉書訂購喜歡(PHP)

首先,我想在做這樣的事情,

$source_url = "http://example.com/"; //This could be anything URL source including stripslashes($_POST['url']) 

$url = "http://api.facebook.com/restserver.php?method=links.getStats&urls=".urlencode($source_url); 
$xml = file_get_contents($url); 
$xml = simplexml_load_string($xml); 
$likes = $xml->link_stat->like_count; 

但是,這會殺了我的服務器,如果我做了我所有的文章,以便更新..

任何建議或片段我可以看看?也許我可以使用一些JavaScript或什麼?不知道。

+0

什麼殺了你的服務器? file_get_contents? – ajreal

+0

如果我做了一個請求,沒關係,但想象一下有1000多篇文章。看起來我正在尋求一個Ajax請求,當他們點擊按鈕。 – Dexty

回答

1

創建一個數據庫表來容納facebook likes(URL,Likes,Timestamp)。在頁面加載時,如果時間戳>現在+一段時間,請刷新表中的喜歡。數據可能會稍微過時,但如果你有5-10分鐘的刷新時間,我認爲它大部分時間都會很接近。

0

首先,你應該放棄舊的REST接口並切換到Graph API

當你這樣做時,通過指定一個逗號分隔的你想要的URL列表,你可以在一個請求中獲取多個對象的數據。您可以通過簡單的GET方式從PHP執行此操作,也可以通過調用FB.api()方式通過Javascript執行此操作。從文檔

段:

你也可以要求使用「IDS」查詢參數在單個查詢多個對象。例如,URL https://graph.facebook.com?ids=arjun,vernal以相同的響應返回兩個配置文件。

「ids」查詢參數也接受URL。這對於查找Open Graph中的URL的ID很有用。例如:https://graph.facebook.com/?ids=http://www.imdb.com/title/tt0117500/

在任何情況下,如果你需要你的表頻繁出入,最好的(或者,更可能的是,只有)解決方案是在本地緩存Facebook的數據。