Existe-t-il un moyen de faire en sorte que plusieurs utilisateurs partagent des liens sur Facebook, Twitter, LinkedIn?
exemple: combien de fois un lien a été partagé sur Facebook, Twitter, LinkedIn pour calculer la popularité de certains contenus.
comment obtenir des parts compter mon api particulier? Existe-t-il une autre option?
J'ai trouvé la réponse ... !!!!!!!
URL de données C’est ici que vous pouvez trouver les données
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]
Remarque : Comme j'utilise «dynamique», cela nécessite .NET 4.0. Aussi, je suis en utilisant la classe JavaScriptSerializer qui est officiellement dépréciée, mais ne sera probablement pas réellement supprimé. Vous pouvez aussi facilement utiliser Regex pour obtenir ces valeurs simples. *
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;}
Mettre à jour
Malheureusement, le nombre de partages sur Twitter est impossible avec API 1.1
Ref: intgr/(number)
est le nombre d’actions et toutes les réponses sont en JSON
http://graph.facebook.com/?id=http://{URL}
Résultats:
{
"id": "http://{URL}",
"shares": intgr/(number)
}
http://cdn.api.Twitter.com/1/urls/count.json?url=http://{URL}
Résultats:
{
"count": intgr/(number)
"url":"http:\/\/{URL}\/"
}
Version 1.1 de l'API Twitter qui ne supporte pas count.json
. Ainsi, il ne sera pas possible de se retirer des comptes de tweets. Cependant, j'ai découvert que (Boutons Tweet) utilise un point de terminaison personnalisé pour obtenir ces chiffres.
Voici le nouveau point final
https://cdn.syndication.Twitter.com/widgets/tweetbutton/count.json?url={URL}
Je ne sais pas si Twitter prendra ce point final et le remplacera lors de l'arrêt officiel de la version 1.0, mais cela fonctionne.
http://www.linkedin.com/countserv/count/share?url=http://{URL&format=json
Résultats:
{
"count": intgr/(number),
"fCnt": "intgr/(number)",
"fCntPlusOne":"intgr/(number) + 1", // increased by one
"url":"http:\/\/{URL}"
}
Ref: pour Twitter et linkdIn j'ai dû ajouter callback
pour obtenir une réponse
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();
});
_ { Terminez Fiddle } _
Un autre Fiddle (renvoie le nombre total d'actions sur les 3 ci-dessus) }
Cette classe Javascript vous permettra de partager des informations partagées sur Facebook, Twitter et LinkedIn.
Exemple d'utilisation
<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>
Télécharger
https://404it.no/js/blog/SocialMediaStats.js
Ajoutez à l'en-tête HTML comme ceci:
<script type="text/javascript" src="SocialMediaStats.js"></script>
Plus d'exemples et de documentation
Classe Javascript pour obtenir des partages d'URL sur Facebook, Twitter et LinkedIn
vérifie ça:
//
http://www.jsfiddle.net/eXJBs
//
// pour changer l'URL, vous trouverez un http://www.google.com il suffit de l'enlever et d'ajouter votre http://www.yourdomain.com
et vous pouvez aussi consulter ces pages de développeurs sur Facebook, ce qui est très utile https://developers.facebook.com/docs/plugins/share-button/
Cette fonction va chercher le nombre de partages sur 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'];