Download the latest DLL from here
http://www.aspsnippets.com/DownloadFile.aspx?File=ASPSnippets.FaceBookAPI.dll
and then use the following code
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="btnFetch" runat="server" Text="Fetch Friends" OnClick="btnFetch_Click" />
<br />
<asp:GridView ID="gvFriends" runat="server" AutoGenerateColumns="false" OnRowDataBound = "OnRowDataBound">
<Columns>
<asp:ImageField DataImageUrlField="PictureUrl" HeaderText="Picture" ItemStyle-VerticalAlign = "Top" />
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-VerticalAlign = "Top" />
<asp:TemplateField HeaderText = "Likes" ItemStyle-VerticalAlign = "Top">
<ItemTemplate>
<asp:GridView ID="gvLikes" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Category" HeaderText="Category" />
<asp:BoundField DataField="Created_Time" HeaderText="Created Time" />
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText = "Activities" ItemStyle-VerticalAlign = "Top">
<ItemTemplate>
<asp:GridView ID="gvActivities" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Category" HeaderText="Category" />
<asp:BoundField DataField="Created_Time" HeaderText="Created Time" />
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>
Code
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using ASPSnippets.FaceBookAPI;
using System.Collections.Generic;
using System.Web.Script.Serialization;
public partial class CS : System.Web.UI.Page
{
private FaceBookData facebookData { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
FaceBookConnect.API_Key = "<API Key>";
FaceBookConnect.API_Secret = "<API Secret>";
if (!IsPostBack)
{
string code = Request.QueryString["code"];
if (!string.IsNullOrEmpty(code))
{
string data = FaceBookConnect.Fetch(code, "me/friends");
facebookData = new JavaScriptSerializer().Deserialize<FaceBookData>(data);
foreach (FaceBookUser user in facebookData.Data)
{
user.PictureUrl = string.Format("https://graph.facebook.com/{0}/picture", user.Id);
data = FaceBookConnect.Fetch(code, user.Id + "/likes/");
user.Likes = new JavaScriptSerializer().Deserialize<FaceBookEnitityData>(data);
data = FaceBookConnect.Fetch(code, user.Id + "/activities/");
user.Activities = new JavaScriptSerializer().Deserialize<FaceBookEnitityData>(data);
}
gvFriends.DataSource = facebookData.Data;
gvFriends.DataBind();
}
}
}
protected void btnFetch_Click(object sender, EventArgs e)
{
FaceBookConnect.Authorize("friends_photos,friends_activities,friends_likes", Request.Url.AbsoluteUri);
}
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
GridView gvLikes = e.Row.FindControl("gvLikes") as GridView;
gvLikes.DataSource = this.facebookData.Data[e.Row.RowIndex].Likes.Data;
gvLikes.DataBind();
GridView gvActivities = e.Row.FindControl("gvActivities") as GridView;
gvActivities.DataSource = this.facebookData.Data[e.Row.RowIndex].Activities.Data;
gvActivities.DataBind();
}
}
}
public class FaceBookData
{
public List<FaceBookUser> Data { get; set; }
}
public class FaceBookUser
{
public string Id { get; set; }
public string Name { get; set; }
public string PictureUrl { get; set; }
public FaceBookEnitityData Likes { get; set; }
public FaceBookEnitityData Activities { get; set; }
}
public class FaceBookEnitityData
{
public List<FaceBookEnitity> Data { get; set; }
}
public class FaceBookEnitity
{
public string Id { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public string Created_Time { get; set; }
}