Ibrahim Maher Ibrahim Maher - 1 month ago 19
PHP Question

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>

Answer

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.

Comments