获取Facebook“赞”计数每个网页在我的域名

我已经将Facebook的“赞”button集成到我网站的很多页面中。 我想在列表中显示我网站上最“喜欢”的页面,但我无法弄清楚如何从一个请求中获取来自Facebook的数据。 到目前为止,我已经能够使用下面的FQL查询获得单个页面的“Like”计数:

SELECT share_count, like_count, comment_count, total_count FROM link_stat WHERE url="http://www.mysite.com/some-page" 

但是,一次一个一个地计算每个网页的数量并不是真的可行。 除了有大量的页面,新的页面正在不断创build(新的用户configuration文件,新的博客和博客文章等),这将使我的网站得到完整的统计数据是一个复杂的过程,并涉及调用Facebook的API数千次。

有一种方法可以统计我的域上每个页面在一个请求中“喜欢”多less次? 或者只是前10名最喜欢的页面,或类似的东西?

其实我会这样做:

 $arrayOfPages = array('url1', 'url2', 'url3'); $listOfPages = implode(',', $arrayOfPages); SELECT share_count, like_count, comment_count, total_count, url FROM link_stat WHERE url IN ($listOfPages) 

这将给你所有的数据与url作为一个唯一的标识符,而不必违反Facebook的政策对假的用户。 您可以dynamic地从网站数据库的查询中创build$arrayOfPagesvariables。

继续Salil的回答,下面是一些主要的API:sharedcount.com正在使用(完整列表: http ://sharedcount.com/documentation.php)

您可以使用sharedcount的API来获得总体摘要,或使用API​​自行编写一些内容:

  • Facebook: http : //api.ak.facebook.com/restserver.php?v=1.0&method=links.getStats&urls=%%URL%%&format=json
  • Twitter: http : //urls.api.twitter.com/1/urls/count.json?url=%%URL%%&callback=twttr.receiveCount
  • 通过需要API密钥的JSON-RPC POST调用来获取Google +1 +1计数(要获取Google API密钥 – https://developers.google.com/+/api/oauth#apikey ):

    POSTurl: https : //clients6.google.com/rpc?key= %%API-KEY %%

    POST正文:[{“method”:“pos.plusones.get”,“id”:“p”,“params”:{“nolog”:true,“id”:“%% URL %%”,“source “:” 窗口小部件”, “用户id”: “@观看者”, “的groupId”: “@自”}, “jsonrpc”: “2.0”, “关键”: “p”, “apiVersion”: “V1”}]

在一个查询中获得所有页面的FB喜欢将是困难的,但是您可以为您的网站的每个页面获取单独的份额。 除了分享数量之外,您还可以获得分享您的网站页面的个人社交networking的数字分解。 在http://sharedcount.com/?url=http%3A%2F%2Fwww.parasitech.net%2F上插入您的域名,并提供适当的build议。; 您可以获得Facebook,Twitter,Google +,Digg,Linkedin,Google Buzz,Delicious和StumbleUpon的号码。

显然在FQL中没有“LIKE”。 这是我的第一个build议

虽然可以使用“IN”运算符,如下所示:

SELECT share_count, like_count, comment_count, total_count
FROM link_stat
WHERE "http://www.mysite.com/" IN url
ORDER BY like_count
LIMIT 10;

1)在fb上创build一个伪造的用户,它将只喜欢你的域名的页面或其他方式来保存你的url在fb中,以后可能通过FQL获取它们

2)查询:

 SELECT share_count, like_count, comment_count, total_count FROM link_stat WHERE url in (SELECT object_id FROM like WHERE user_id="fake_user_id") 

3)不要忘记关于每一个计数的递减;),sorting和显示

也许你可以在每次查看页面时查询每个页面的喜好数量。 这并不准确,但请记住,最受欢迎的页面将被更频繁地查看,这可能会足够好。

此外,您可以使用批处理过程来查询所有页面的喜欢数量,或者每隔几个小时至less查询最近创build的最多N个页面。 大多数情况下,你不会得到正确的结果,但在大多数情况下,你的用户不需要正确的结果,但足够好的近似值。

如果你只是需要从每个网页的计数,超级社交媒体追踪可以提供这一点。

http://apps.microsoft.com/windows/en-US/app/super-social-media-tracker/a56c8971-42e2-4eb4-9b05-7e52233b4e1e

但是对于大量的页面来说是很慢的。

看了一下后,我们可能会更好地使用graphicsAPI的FQL:

http://graph.facebook.com/fql?q=select%20comment_count%2C%20share_count%2C%20like_count%20from%20link_stat%20where%20url%20%3D%20%22http%3A%2F%2Fmashable.com% 2F2013%2F01 2F30%%2Ffacebook-Twitter的黑莓-10%2F%22

结果是

 { "data": [ { "comment_count": 3, "share_count": 91, "like_count": 5 } ] }