texto - Facebook, Twitter, LinkedIn, compartir el conteo de enlaces
enlaces para compartir en redes sociales (5)
¿Hay alguna manera de conseguir que el número de usuarios comparta algún enlace en Facebook, Twitter, LinkedIn?
ejemplo: cuántas veces se compartió algún enlace en Facebook, Twitter, LinkedIn para calcular la popularidad de algunos contenidos.
¿Cómo obtener compartir? ¿Cuenta mi api particular? Hay alguna otra opción ? ¿Hay alguna API?
¡¡Encontré la respuesta ... !!!!!!!
URL de datos Aquí es donde puede encontrar los datos
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]
Nota : Dado que estoy usando "dinámico", esto requiere .NET 4.0. Además, estoy usando la clase JavaScriptSerializer que está oficialmente depreciada, pero probablemente no se eliminará. También podría usar fácilmente Regex para obtener estos valores 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;}
Esta clase de Javascript te permitirá buscar información de Facebook, Twitter y LinkedIn.
Ejemplo de uso
<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>
Descargar
https://404it.no/js/blog/SocialMediaStats.js
Agregue al encabezado HTML de esta manera:
<script type="text/javascript" src="SocialMediaStats.js"></script>
Más ejemplos y documentación
Clase de Javascript para obtener acciones de URL en Facebook, Twitter y LinkedIn
Mira esto:
//
http://www.jsfiddle.net/eXJBs
//
// para cambiar la URL a la suya, encontrará un http://www.google.com solo quítelo y agregue su http://www.tudominio.com
y también puedes consultar las páginas de desarrolladores de Facebook, que es muy útil https://developers.facebook.com/docs/plugins/share-button/
Esta función obtendrá conteos de acciones de 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''];
Actualizar
Desafortunadamente, el conteo de Twitter es imposible con API 1.1
Ref: intgr/(number)
es el número de intgr/(number)
compartidos y todas las respuestas están en JSON
http://graph.facebook.com/?id=http://{URL}
Devoluciones:
{
"id": "http://{URL}",
"shares": intgr/(number)
}
Gorjeo
http://cdn.api.twitter.com/1/urls/count.json?url=http://{URL}
Devoluciones:
{
"count": intgr/(number)
"url":"http:////{URL}//"
}
v1.1 actualización
Versión 1.1 de Twitter API que no admite count.json
. Por lo tanto, no será posible retirar los conteos de tweets. Sin embargo, descubrí que los botones Tweet utilizan un punto final personalizado para obtener estos números.
Aquí está el nuevo punto final
https://cdn.syndication.twitter.com/widgets/tweetbutton/count.json?url={URL}
No estoy seguro de si Twitter tomará este punto final y lo reemplazará cuando cierren oficialmente v 1.0, pero funciona.
http://www.linkedin.com/countserv/count/share?url=http://{URL&format=json
Devoluciones:
{
"count": intgr/(number),
"fCnt": "intgr/(number)",
"fCntPlusOne":"intgr/(number) + 1", // increased by one
"url":"http:////{URL}"
}
Hacer que las acciones cuenten con jQuery
Ref: para Twitter y linkdIn tuve que agregar callback
de callback
para obtener una respuesta
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();
});
ACTUALIZAR:
Otro violín (devuelve el total de acciones en los 3 anteriores)