it-swarm-tr.com

Facebook, Twitter, LinkedIn, link sayısını paylaş

Kullanıcı sayısının Facebook, Twitter, LinkedIn'da bir bağlantı paylaşmasını sağlamanın bir yolu var mı?

Örnek: Bazı içeriğin popülaritesini hesaplamak için bir linkin Facebook, Twitter ve LinkedIn ile kaç kez paylaşıldığı.

özel api'miz pay saymak nasıl? başka bir seçenek var mı? Bazı api var mı?

22
Sajith

Cevap buldum ... !!!!!!!

Veri URL’leri Verileri burada bulabilirsiniz.

Facebook    http://graph.facebook.com/?ids=YOURURL
Twitter http://urls.api.Twitter.com/1/urls/count.json?url=YOURURL
Google  https://clients6.google.com/rpc [see below for JSON-RPC]

Not : “Dinamik” kullandığımdan bu yüzden .NET 4.0 gereklidir. Ayrıca, resmi olarak amortismana tabi olan JavaScriptSerializer sınıfını kullanıyorum , , Ancak muhtemelen kaldırılmayacak. Bu basit değerleri almak için kolayca Regex kullanabilirsiniz. *

int GetTweets(string url) {

    string jsonString = new System.Net.WebClient().DownloadString("http://urls.api.Twitter.com/1/urls/count.json?url=" + url);

    var json = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(jsonString);
    int count = (int)json["count"]; 

    return count;
}

int GetLikes(string url) {

    string jsonString = new System.Net.WebClient().DownloadString("http://graph.facebook.com/?ids=" + url);

    var json = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(jsonString);
    int count = json[url]["shares"];

    return count;
}

int GetPlusOnes(string url) {

    string googleApiUrl = "https://clients6.google.com/rpc"; //?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ";

    string postData = @"[{""method"":""pos.plusones.get"",""id"":""p"",""params"":{""nolog"":true,""id"":""" + url + @""",""source"":""widget"",""userId"":""@viewer"",""groupId"":""@self""},""jsonrpc"":""2.0"",""key"":""p"",""apiVersion"":""v1""}]";

    System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(googleApiUrl);
    request.Method = "POST";
    request.ContentType = "application/json-rpc";
    request.ContentLength = postData.Length;

    System.IO.Stream writeStream = request.GetRequestStream();
    UTF8Encoding encoding = new UTF8Encoding();
    byte[] bytes = encoding.GetBytes(postData);
    writeStream.Write(bytes, 0, bytes.Length);
    writeStream.Close();

    System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
    System.IO.Stream responseStream = response.GetResponseStream();
    System.IO.StreamReader readStream = new System.IO.StreamReader(responseStream, Encoding.UTF8);
    string jsonString = readStream.ReadToEnd();

    readStream.Close();
    responseStream.Close();
    response.Close();

    var json = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(jsonString);
    int count = Int32.Parse(json[0]["result"]["metadata"]["globalCounts"]["count"].ToString().Replace(".0", ""));

    return count;}
9
Sajith

Güncelleme

Ne yazık ki, API 1.1 ile Twitter paylaşım sayısı imkansız

Ref: intgr/(number), hisse sayısıdır ve tüm yanıtlar JSON'dadır

Facebook

http://graph.facebook.com/?id=http://{URL}

İade: 

{
   "id": "http://{URL}",
   "shares": intgr/(number)
}

Heyecan

http://cdn.api.Twitter.com/1/urls/count.json?url=http://{URL}

İade:

{  
   "count": intgr/(number)
   "url":"http:\/\/{URL}\/"
}

v1.1 Güncellemesi

count.json özelliğini desteklemeyen Twitter API 1.1 sürümü. Böylece, tweet sayımlarını geri almak mümkün olmayacak. Ancak şunu buldum Tweet Buttons bu sayıları almak için özel bir uç nokta kullandım. 

İşte yeni bitiş noktası

https://cdn.syndication.Twitter.com/widgets/tweetbutton/count.json?url={URL}

Twitter'ın bu son noktaya düşüp düşmeyeceğinden emin değilim ve resmi olarak v 1.0'ı kapattıklarında değiştirecekler ama ben de çalışıyor.

LinkedIn

http://www.linkedin.com/countserv/count/share?url=http://{URL&format=json

İade: 

{
   "count": intgr/(number),
   "fCnt": "intgr/(number)",
   "fCntPlusOne":"intgr/(number) + 1", // increased by one
   "url":"http:\/\/{URL}"
}

JQuery ile hisse sayımı almak

Ref: Twitter ve linkdIn için bir cevap almak için callback eklemek zorunda kaldım

HTML: 

<p id="facebook-count"></p>
<p id="Twitter-count"></p>
<p id="linkdin-count"></p>

JS: 

$('#getJSON').click( function () {

    $('#data-tab').fadeOut();
    $URL = $('#urlInput').val();

    // Facebook Shares Count
    $.getJSON( 'http://graph.facebook.com/?id=' + $URL, function( fbdata ) {
        $('#facebook-count').text( 'The URL has ' + ReplaceNumberWithCommas(fbdata.shares) + ' shares count on Facebook')
    });

    // Twitter Shares Count
    $.getJSON( 'http://cdn.api.Twitter.com/1/urls/count.json?url=' + $URL + '&callback=?', function( twitdata ) {
        $('#Twitter-count').text( 'The URL has ' + ReplaceNumberWithCommas(twitdata.count) + ' shares count on Twitter')
    });

    // LinkIn Shares Count
    $.getJSON( 'http://www.linkedin.com/countserv/count/share?url=' + $URL + '&callback=?', function( linkdindata ) {
        $('#linkdin-count').text( 'The URL has ' + ReplaceNumberWithCommas(linkdindata.count) + ' shares count on linkdIn')
    });

    $('#data-tab').fadeIn();

});

Tamamlandı Fiddle

GÜNCELLEŞTİRME:

Başka bir Fiddle (yukarıdaki 3 hisse üzerindeki toplam payları döndürür)

29
Adam Azad

Bu Javascript sınıfı, Facebook, Twitter ve LinkedIn'den bilgi paylaşmanıza izin verir.

Kullanım örneği

<p>Facebook count: <span id="facebook_count"></span>.</p>
<p>Twitter count: <span id="Twitter_count"></span>.</p>
<p>LinkedIn count: <span id="linkedin_count"></span>.</p>
<script type="text/javascript">
    var smStats=new SocialMediaStats('https://google.com/'); // Replace with your desired URL
    smStats.facebookCount('facebook_count'); // 'facebook_count' refers to the ID of the HTML tag where the result will be placed.
    smStats.twitterCount('Twitter_count');
    smStats.linkedinCount('linkedin_count');    
</script>

İndir

https://404it.no/js/blog/SocialMediaStats.js

HTML başlığına şöyle ekle:

<script type="text/javascript" src="SocialMediaStats.js"></script>

Daha fazla örnek ve dokümantasyon

Facebook, Twitter ve LinkedIn'de URL Paylaşımı Almak için Javascript Sınıfı

1
PerKristian

şunu bir kontrol et:

//
http://www.jsfiddle.net/eXJBs
//

// URL’yi sizinkiyle değiştirmek için, bir http://www.google.com ’u bulacaksınız -/sadece çıkartın ve http://www.yourdomain.com

ve çok yararlı olan bu facebook geliştirici sayfalarını da inceleyebilirsiniz https://developers.facebook.com/docs/plugins/share-button/

0
geekslot

Bu işlev facebook, g-plus, linkedin, pinterest'dan pay sayımlarını getirecek

function social_share_counts($pageurl)
{
    //facebook

    $fb_data = file_get_contents('http://graph.facebook.com/'.$pageurl);
    $fb_json = json_decode($fb_data,TRUE);
    if(count($fb_json) > 1){
        $facebook_shares = $fb_json['shares'];
    }
    else{
        $facebook_shares = 0;
    }
    //facebook

    //google
    $curl = curl_init();
    curl_setopt( $curl, CURLOPT_URL, "https://clients6.google.com/rpc" );
    curl_setopt( $curl, CURLOPT_POST, 1 );
    curl_setopt( $curl, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $pageurl . '","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 );
    $google_json = json_decode( $curl_results, true );

    $google_shares = intval( $google_json[0]['result']['metadata']['globalCounts']['count'] );
    //google

    //linkedin
    $linkedin_data = file_get_contents('https://www.linkedin.com/countserv/count/share?format=json&url='.$pageurl);
    $linkedin_json = json_decode($linkedin_data);
    $linkedin_shares = $linkedin_json->count;
    //linkedin

    //pinterest
    $pinterest_data = file_get_contents('http://api.pinterest.com/v1/urls/count.json?callback=sharecount&url='.$pageurl);
    preg_match('/"count":(\d*).+$/',$pinterest_data,$match);
    $pinterest_shares = $match[1];
    //pinterest

    return array("facebook"=>$facebook_shares,"google"=>$google_shares,"linkedin"=>$linkedin_shares,"pinterest"=>$pinterest_shares);
}

//now check->

$share_cnts = social_share_counts('https://www.facebook.com');
echo $share_cnts['facebook'];
0
srv