Tuesday 16 July 2013

jQuery -Get Number of Facebook likes, Shares, Comments Count for Url or Website

Introduction: 

 how to get number of facebook likes count for url, get number of facebook shares count for url, get number of facebook comments count for url and number of facebook click count for url or website using json jQuery in asp.net using C#.


To implement this functionality we need to write the code like as shown below


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Get facebook shares, comments, likes count of urls</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#btnurl').click(function() {
var url = $('#txturl').val();
document.getElementById('tbDetails').style.display = 'block';
$.ajax({
type: "POST",
url: "WebService.asmx/BindDatatable",
data: "{urltxt:'" + url + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
for (var i = 0; i < data.d.length; i++) {
$("#tbDetails").append("<tr><td>" + data.d[i].Url + "</td><td>" + data.d[i].SharedCount + "</td><td>" + data.d[i].LikeCount + "</td><td>" + data.d[i].CommentCount + "</td><td>" + data.d[i].ClickCount + "</td><td>" + data.d[i].TotalCount + "</td></tr>");
}
},
error: function(result) {
alert("Error");
}
});
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td><b>Enter Url:</b></td>
<td><input type="text" id="txturl" /> </td>
</tr>
<tr>
<td></td>
<td><input type="button" id="btnurl" value="Get Url Count" /> </td>
</tr>
</table>
</div>
<div>
<table id="tbDetails" cellpadding="1" cellspacing="1" style="border:solid 1px #000000display:none">
<thead style="background-color:#DC5807color:Whitefont-weight:bold">
<tr>
<td>URL</td>
<td>Shared Count</td>
<td>Likes Count</td>
<td>Comments Count</td>
<td>Clicks Count</td>
<td>Total Count</td>
</tr>
</thead>
</table>
</div>
</form>
</body>
</html>


Service details:



using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Net;
using System.Web.Services;

/// <summary>
/// Summary description for AutoCompleteService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
[WebMethod]
public UrlDetails[] BindDatatable(string urltxt)
{
List<UrlDetails> details = new List<UrlDetails>();
WebClient web = new WebClient();
string url = string.Format("https://api.facebook.com/method/fql.query?query=SELECT url, share_count, like_count, comment_count, total_count, click_count FROM link_stat where url='" + urltxt + "'");
string response = web.DownloadString(url);
DataSet ds = new DataSet();
using (StringReader stringReader = new StringReader(response))
{
ds=new DataSet();
ds.ReadXml(stringReader);
}
DataTable dt = ds.Tables["link_stat"];
foreach (DataRow dtrow in dt.Rows)
{
UrlDetails website = new UrlDetails();
website.Url = dtrow["url"].ToString();
website.LikeCount = dtrow["like_count"].ToString();
website.SharedCount = dtrow["share_count"].ToString();
website.CommentCount = dtrow["comment_count"].ToString();
website.ClickCount = dtrow["click_count"].ToString();
website.TotalCount = dtrow["total_count"].ToString();
details.Add(website);
}
return details.ToArray();
}
public class UrlDetails
{
public string Url { getset; }
public string SharedCount { getset; }
public string LikeCount { getset; }
public string CommentCount { getset; }
public string ClickCount { getset; }
public string TotalCount { getset; }
}
}

No comments:

Post a Comment