it-swarm.com.de

Facebook, Twitter, LinkedIn, Anzahl der Links

Gibt es eine Möglichkeit, die Anzahl der Nutzer auf Facebook, Twitter und LinkedIn zu teilen

beispiel: Wie oft wurde ein Link mit Facebook, Twitter und LinkedIn geteilt, um die Beliebtheit einiger Inhalte zu berechnen.

wie bekomme ich meine bestimmte API? Gibt es eine andere Option? Gibt es eine API?

22
Sajith

Ich fand Antwort ... !!!!!!!

Daten-URLs .__ Hier können Sie die Daten finden

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]

Hinweis : Da ich "dynamisch" verwende, ist .NET 4.0 erforderlich. Ich bin auch mit der offiziell abgewerteten JavaScriptSerializer-Klasse, wird aber wahrscheinlich nicht wirklich entfernt. Sie können auch problemlos __ verwenden. Regex, um diese einfachen Werte zu erhalten. *

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

Update

Leider ist das Teilen von Twitter mit API 1.1 nicht möglich

Ref: intgr/(number) ist die Anzahl der Freigaben und alle Antworten sind in JSON

Facebook

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

Kehrt zurück: 

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

Twitter

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

Kehrt zurück:

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

v1.1 Update

Version 1.1 der Twitter-API, die count.json nicht unterstützt. Es ist daher nicht möglich, die Anzahl der Tweets erneut zu ermitteln. Ich habe jedoch herausgefunden, dass Tweet Buttons einen benutzerdefinierten Endpunkt verwenden, um diese Zahlen zu erhalten. 

Hier ist der neue Endpunkt

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

Ich bin nicht sicher, ob Twitter diesen Endpunkt herunternehmen und ersetzen wird, wenn sie offiziell 1.0 heruntergefahren werden, aber es funktioniert.

LinkedIn

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

Kehrt zurück: 

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

Die Freigabe von Anteilen mit jQuery

Ref: für Twitter und linkdIn Ich musste callbackhinzufügen, um eine Antwort zu erhalten

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();

});

Vervollständige Fiddle

AKTUALISIEREN:

Ein weiteres Fiddle (gibt die Gesamtanteile der 3 oben zurück)

29
Adam Azad

Mit dieser Javascript-Klasse können Sie Freigabeinformationen von Facebook, Twitter und LinkedIn abrufen.

Verwendungsbeispiel

<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>

Herunterladen

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

Fügen Sie den HTML-Header wie folgt hinzu:

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

Weitere Beispiele und Dokumentation

Javascript-Klasse zum Abrufen von URL-Freigaben auf Facebook, Twitter und LinkedIn

1
PerKristian

Überprüfen Sie dies:

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

// Um ​​die URL in Ihre zu ändern, finden Sie ein http://www.google.com , nehmen Sie es einfach ab und fügen Sie Ihr http://www.yourdomain.com hinzu.

und Sie können auch diese Facebook-Entwicklerseiten nachschlagen, was sehr nützlich ist https://developers.facebook.com/docs/plugins/share-button/

0
geekslot

Diese Funktion holt Sharecounts von Facebook, g-plus, linkedin, pinterest

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