PHP ile Sosyal Paylaşım Sayılarını Çekme
Tarih: 2018-04-30 14:04 Kategori: Php-Html5-Css-jQuery-Mysql | Okundu: 2267PHP ile Sosyal Paylaşım Sayılarını Çekme
PHP ile hazır bir kod paylaşacağız ve bu kodu çalıştıracağız. Konu başlığından da anlaşılacağı üzere bir linkin sosyal medya üzerindeki paylaşım sayısını görüntüleyeceğiz.
PHP kullanarak yazılan bu kod’da sosyal medya platformlarının api sistemlerine CURL aracılığı ile bağlanarak bizin sorgulattığımız sitenin paylaşım sayısını getirecek ve ekrana basacak. Bu kodları kullanarak kendi sitenizde veya projenizde hatta wordpress temalarında mevcut sayfanın kaç defa paylaşıldığını kullanıcılara gösterebilirsiniz veya yaratıcılığınıza kalmış dostlar on numara işler çıkartabilirsiniz.
sosyalmedya.php Dosyamızda ki Kodlar
Aşağıdaki kod bir PHP class’ıdır. Bunu herhangi bir isimle kaydedip kullanabilirsiniz. Ben şimdilik sosyalmedya.php olarak adlandırdığımız farz edeceğim. Kod gösterim alanında bulunan kodları alıp sizde bu isimle kaydedebilirsiniz.
<?php class SosyalPaylasimCek { private $url, $timeout; function __construct($url, $timeout = 10) { $this->url = rawurlencode($url); $this->timeout = $timeout; } function twitter_getir() { $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_getir() { $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_getir() { $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; } } ?>
index.php Dosyamızda ki Kodlar
<?php include('sosyalmedya.php'); $scek=new SosyalPaylasimCek('http://site.com'); //Website, sayfa linkiniz. http barındırmalıdır echo "Twitter :".$scek->twitter_getir()." <br />"; //Twitter paylaşım sayısını getirir echo "Facebook :".$scek->facebook_getir()." <br />"; //Facebook beğeni, paylaşım ve yorum sayısını getirir. echo "Google Plus :".$scek->googleplus_getir()." <br />"; //Google Plusone (+1) sayısını getirir ?>