我有一个有很多新闻的网站,不过我想知道是否有任何方式我可以按Facebook喜欢对我的文章进行排序?如何通过在一天内更新所有文章x次而不杀死我的服务器来做到这一点?
首先我想做这样的事情,
$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 :(得分:1)
创建一个db表来保存facebook喜欢(URL,Likes,Timestamp)。在页面加载时,如果Timestamp>现在+一定的时间,刷新表中的喜欢。数据可能会略微过时,但如果您的刷新时间为5-10分钟,我认为大部分时间都会非常接近。
答案 1 :(得分:0)
首先,您应该删除旧的REST接口并切换到Graph API。
当您这样做时,您将能够通过指定所需URL的逗号分隔列表,在单个请求中获取多个对象的数据。您可以通过简单的GET从PHP执行此操作,也可以通过调用FB.api()的Javascript执行此操作。
doc:
的片段您还可以使用“ids”查询参数在单个查询中请求多个对象。例如,网址https://graph.facebook.com?ids=arjun,vernal会在同一响应中返回两个配置文件。
“ids”查询参数也接受网址。这对于在Open Graph中查找URL的ID非常有用。例如:https://graph.facebook.com/?ids=http://www.imdb.com/title/tt0117500/
在任何情况下,如果您需要经常访问您的表,最好的(或更可能是唯一的)解决方案是在本地缓存Facebook的数据。