I have created a tool to check social popularity of website. That shows total number of Google plus, Tweets, Facebook likes, Stumbleupon views, Delicious bookmarks, Linkedin shares and Pinterest pins for a website or URL.
Here is a php class to get social share count. It might be useful for you
<? class shareCount { private $url,$timeout; function __construct($url,$timeout=10) { $this->url=rawurlencode($url); $this->timeout=$timeout; } function get_tweets() { $json_string = $this->file_get_contents_curl('http://urls.api.twitter.com/1/urls/count.json?url=' . $this->url); $json = json_decode($json_string, true); return isset($json['count'])?intval($json['count']):0; } function get_linkedin() { $json_string = $this->file_get_contents_curl("http://www.linkedin.com/countserv/count/share?url=$this->url&format=json"); $json = json_decode($json_string, true); return isset($json['count'])?intval($json['count']):0; } function get_fb() { $json_string = $this->file_get_contents_curl('http://api.facebook.com/restserver.php?method=links.getStats&format=json&urls='.$this->url); $json = json_decode($json_string, true); return isset($json[0]['total_count'])?intval($json[0]['total_count']):0; } function get_plusones() { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "https://clients6.google.com/rpc"); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"'.rawurldecode($this->url).'","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json')); $curl_results = curl_exec ($curl); curl_close ($curl); $json = json_decode($curl_results, true); return isset($json[0]['result']['metadata']['globalCounts']['count'])?intval( $json[0]['result']['metadata']['globalCounts']['count'] ):0; } function get_stumble() { $json_string = $this->file_get_contents_curl('http://www.stumbleupon.com/services/1.01/badge.getinfo?url='.$this->url); $json = json_decode($json_string, true); return isset($json['result']['views'])?intval($json['result']['views']):0; } function get_delicious() { $json_string = $this->file_get_contents_curl('http://feeds.delicious.com/v2/json/urlinfo/data?url='.$this->url); $json = json_decode($json_string, true); return isset($json[0]['total_posts'])?intval($json[0]['total_posts']):0; } function get_pinterest() { $return_data = $this->file_get_contents_curl('http://api.pinterest.com/v1/urls/count.json?url='.$this->url); $json_string = preg_replace('/^receiveCount\((.*)\)$/', "\1", $return_data); $json = json_decode($json_string, true); return isset($json['count'])?intval($json['count']):0; } private function file_get_contents_curl($url){ $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout); $cont = curl_exec($ch); if(curl_error($ch)) { die(curl_error($ch)); } return $cont; } } ?>
How to use it?
Save above code as shareCount.php
<? require("shareCount.php"); $obj=new shareCount("http://www.website.com"); //Use your website or URL echo $obj->get_tweets(); //to get tweets echo $obj->get_fb(); //to get facebook total count (likes+shares+comments) echo $obj->get_linkedin(); //to get linkedin shares echo $obj->get_plusones(); //to get google plusones echo $obj->get_delicious(); //to get delicious bookmarks count echo $obj->get_stumble(); //to get Stumbleupon views echo $obj->get_pinterest(); //to get pinterest pins ?>
Hey,
Would you please extend a bit more on what exactly is the count that your code retrieves ?
It searches every single social network on the list for comments on the url ?
Thanks for this post
Pablo
php script to get the digg share count pelase help me
Hi! Can you help me get the share count for linkedin, twitter and google plus using the code above but only returning the value for the last 7 days?
Facebook I figured out, the problem are the others…
Thank you!
Hi, to shared in google+ get error
User Rate Limit Exceeded. Please sign up
Any idea?
I implemented this on my website. However, the counts are not refreshing after some pages were shared. Please let me know what we need to do to refresh them?
Thanks for all your help. I appreciate it!
I Get A Error:
00SSL certificate problem: unable to get local issuer certificate
add following code after line number 59 in above class
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
this will disable ssl check
Thanks for it. I used in my own system. Thx.
Thanks, save me a lot of time.
Pingback: [PHP] URL สำหรับดึงเลข Share Facebook, Twitter | By Perth
Sunny thanks this code. Is that async? How can i convert this code to async?
The requested URL returned error: 404 Not Found after 2 days i implemented script share count . where is the function declare . please give me the solution of this. ??