Get Facebook “Like” count for every page on my domain

前端 未结 8 872
孤独总比滥情好
孤独总比滥情好 2020-12-07 13:35

I have integrated the Facebook \"Like\" button into a lot of pages in my site. I want to display the most \"Liked\" pages on my site in a list, but I can\'t figure out how

相关标签:
8条回答
  • 2020-12-07 14:15

    After some looking around, we may be better off using FQL with graph API:

    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-blackberry-10%2F%22

    Results are

    {
       "data": [
          {
             "comment_count": 3,
             "share_count": 91,
             "like_count": 5
          }
       ]
    }
    
    0 讨论(0)
  • 2020-12-07 14:17

    Actually I would do it this way:

    $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)
    

    That would give you all the data with the URL as a unique identifier without having to break Facebook's policy against fake users. You can dynamically create the $arrayOfPages variable from a query on your site's database.

    0 讨论(0)
  • 2020-12-07 14:26

    Apparently there's no 'LIKE' in FQL. Which was my first suggestion..

    Though you can use the "IN" operator, like so:

    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;

    0 讨论(0)
  • 2020-12-07 14:28

    It will be difficult to get FB likes for all your pages in one query, but you can get individual share count for every page of your site. Apart from the share count you can also get the breakup of numbers for individual social network for which your site page is shared. Insert you domain name at http://sharedcount.com/?url=http%3A%2F%2Fwww.parasitech.net%2F with appropriate suggestions provided to you. You can get numbers for Facebook, Twitter, Google+, Diggs, Linkedin, Google Buzz, Delicious and StumbleUpon.

    0 讨论(0)
  • 2020-12-07 14:29

    In continuation to Salil's answer, here are the some of the major APIs sharedcount.com are using (full list here: http://sharedcount.com/documentation.php)

    You can use sharedcount's API to get a general summary, or write something yourself using the APIs:

    • 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
    • Google +1 +1 counts are retrieved via a JSON-RPC POST call that requires an API key (To get a google API key - https://developers.google.com/+/api/oauth#apikey):

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

      POST Body: [{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"%%URL%%","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]

    0 讨论(0)
  • 2020-12-07 14:32

    Maybe you can just query the number of likes for each page each time the page is viewed. This won't be precise, but keeping in mind that the most popular pages will be viewed more often it might be good enough.

    Additionally, you can use a batch process to query the number of likes of all the page or at least the top N last created ones every couple of hours. Most of the time you won't get the correct result, but in most cases your users don't need the correct result but a good enough approximation.

    0 讨论(0)
提交回复
热议问题