Herhangi Bir Linkin Sosyal Medya Sitelerindeki Paylaşım Sayısını Gösterme

Herhangi Bir Linkin Sosyal Medya Sitelerindeki Paylaşım Sayısını Gösterme
128

Sosyal medya ile alakalı bir proje başlangıcı aşamasındayım bu aşamada sistemimi geliştirme için birçok araştırma yapıyorum bu araştırmalar sırasında hem benimde hemde sizin işinizi göreceğini düşündüğüm bu içeriği hazırladım.

Bu yazıda sitenizin herhangi bir linkinin facebook, twitter ve google plus sitelerinde ne kadar paylaşıldığını aracı bir site olmaksızın sadece sitelerin kendi sağladığı API’ler sayesinde nasıl göstereceğinizden bahsedeceğim.


Başlayalım

socialcounter

İlk olarak sosyal.php veya kendi istediğiniz bir isimde php dosyası oluşturun. Daha sonra php class’ı oluşturarak sosyal paylaşım sitelerinin kendi sağladığı API’leri kullanarak paylaşım sayılarını gösterelim. Kod örneği şöyle;

Bu kod yapısını wordpress dahil tüm CMS sistemlerinde kulllanabilirsiniz.

<?php
class SocialCount_uckan
 
{
private $url, $timeout;
function __construct($url, $timeout = 10)
{
$this->url = rawurlencode($url);
$this->timeout = $timeout;
}
 
function twitter_count()
{
$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 facebook_count()
{
$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 googleplus_count()
{
$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;
}
 
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;
}
}
?>

Sosyal paylaşım sayılarını göstermek için aşağıdaki kod yapısını kullanabilirsiniz. Url kısmını düzenlemeyi unutmayın.

<?php include('sosyal.php');
 $surl = 'http://www.uckan.net/2016/07/11/herhangi-bir-linkin-sosyal-medya-sitelerindeki-paylasim-sayisini-gosterme/';
 $scount=new SocialCount_uckan(''.$surl.'');
 echo "Twitter :".$scount->twitter_count()." ";
 echo "Facebook :".$scount->facebook_count()." ";
 echo "Google Plus :".$scount->googleplus_count().""; 
 ?>

 

Yorum Yap