Search code examples
javascriptphphtmlfacebook

How to count number of social shares on web page locally


I have a Facebook share button on a page, And now the user shares a post on his/her timeline, Now what i want to do is count the number of times that specific user shares it in that session.

For Example the count will be initialized to 0 for all users , What i want is Each time a person shares a post successfully the count to increment.

We create a variable count and initialize to 0, now the share button works fine, How can i increment the count each time the post is successfully shared? What variables would be needed and how can this be done?

<?php
session_start();
$fbcount = $_SESSION['count'];

function incrememnt() {
      $fbcount++;
 }
?>

<script>
document.getElementById('shareBtn').onclick = function() {
  FB.ui({
    method: 'share',
    display: 'popup',
    href: 'https://developers.facebook.com/docs/',
  }, function(response){});
}
</script>

Solution

  • I'm not sure of the exact syntax without seeing the properties on the response object, but you should be able to do something like:

      document.getElementById('shareBtn').onclick = function() {
          FB.ui({
            method: 'share',
            display: 'popup',
            href: 'https://developers.facebook.com/docs/',
          }, function(response){
                 if(response.statusCode == '200'){
                     increment();
                 }    
    
          });
        }
    

    You will likely have to change response.statusCode to whatever property you actually have on the response object.

    This would also be a good place for error handling. Maybe throw an else after the if to do something if it's anything but 200.