Belirttiğiniz URL'nin twitter, linkedin, facebook, gooleplus ve pinterest üzerinde ne kadar paylaşıldığını merak ediyorsanız bu kod tam size göre
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Web.Script.Serialization;
using Newtonsoft.Json.Linq;
public class SocialCount
{
public string Url { get; set; }
private decimal Total { get; set; }
public SocialCount(string url)
{
Url = url;
}
public int GetTweets()
{
var jsonString = new System.Net.WebClient().DownloadString("http://urls.api.twitter.com/1/urls/count.json?url=" + Url);
var json = new JavaScriptSerializer().Deserialize>(jsonString);
var count = Convert.ToInt32(json["count"]);
Total += count;
return count;
}
public int GetLikes()
{
try
{
var jsonString = new System.Net.WebClient().DownloadString("http://graph.facebook.com/?ids=" + Url);
var json = new JavaScriptSerializer().Deserialize>(jsonString);
int count = json[Url]["shares"];
Total += count;
return count;
}
catch (Exception ex)
{
return 0;
}
}
public int GetPlusOnes()
{
const string googleApiUrl = "https://clients6.google.com/rpc";
int count = 0;
var 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""}]";
try
{
var request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(googleApiUrl);
request.Method = "POST";
request.ContentType = "application/json-rpc";
request.ContentLength = postData.Length;
var writeStream = request.GetRequestStream();
var encoding = new UTF8Encoding();
var bytes = encoding.GetBytes(postData);
writeStream.Write(bytes, 0, bytes.Length);
writeStream.Close();
var response = (System.Net.HttpWebResponse)request.GetResponse();
var responseStream = response.GetResponseStream();
var readStream = new System.IO.StreamReader(responseStream, Encoding.UTF8);
var jsonString = readStream.ReadToEnd();
readStream.Close();
responseStream.Close();
response.Close();
var json = JObject.Parse(jsonString.Replace("[", "").Replace("]", ""));
count = Convert.ToInt32(json["result"]["metadata"]["globalCounts"]["count"].ToString().Replace(".0", ""));
Total += count;
}
catch (Exception)
{
throw;
}
return count;
}
public int GetLinkedIn()
{
var jsonString = new System.Net.WebClient().DownloadString("http://www.linkedin.com/countserv/count/share?url=" + Url + "&format=json");
var json = new JavaScriptSerializer().Deserialize>(jsonString);
var count = Convert.ToInt32(json["count"]);
Total += count;
return count;
}
public int GetPins()
{
var jsonString = new System.Net.WebClient().DownloadString("http://api.pinterest.com/v1/urls/count.json?url=" + Url);
jsonString = Regex.Match(jsonString, @"receiveCount\((.*)\)$").Groups[1].Value;
var json = new JavaScriptSerializer().Deserialize>(jsonString);
var count = Convert.ToInt32(json["count"]);
Total += count;
return count;
}
public string GetAll()
{
string textTotal;
if (Total == 0)
{
GetTweets();
GetLikes();
GetPlusOnes();
GetPins();
GetLinkedIn();
}
if (Total > 1000000)
{
Total = Math.Round(Total / 1000000, 1);
textTotal = Total + "M";
}
else if (Total > 1000)
{
Total = Math.Round(Total / 1000, 1);
textTotal = Total + "B";
}
else
{
textTotal = Total.ToString();
}
return textTotal.Replace(",",".");
}
}




0 yorum:
Yorum Gönder