Friday, October 21, 2011

How to Integrate Asp.Net application in Facebook


Someone asked me how to create facebook app day before yesterday and he wanted to integrate existing asp.net webpage in this facebook app. I was not much aware about facebook integration but got to know that facebook doesn’t have any api for asp.net to integrate webpage instead they have for php and python. So I googled and then find very good dotnet toolkit for facebook app which is from Microsoft (Facebook Developer Kit). We can integrate desktop or web app using this toolkit. So I thought I should make a sample app and share on this platform.
Below are some steps":
Before creating facebook app you need to have facebook account.
Setting up Facebook App
  • To create facebook app click on Developer section 
  • Click on Set up New App button.
  • Agree Facebook terms and click on Create App
Fb_CreateApp_thumb1
  • Put Security Check keywords.
  • Click on Submit.
  • Fill basic information about app.
fb_BasicInfo_thumb1
  • Click on Facebook Integration tab.
  • Put Name of Canvas page.
  • Before putting URL of webpage of your website, I want to show how your page can get callback from facebook app. So first we create webpage in our website:
  • Create asp.net website in Visual studio.
  • Add reference of Facebook.dll from “C:\Program Files\Coding4Fun\Facebook\Binaries”. This dll will be placed after installing Facebook Developer kit on your machine.
  • Create instance of FacebookService object. you can copy facebook app api key and secret key from application page on facebook in source code.

fb_appkey_thumb1

put above values in FACEBOOK_API_KEY and FACEBOOK_SECRET constants respectively.
you can get user_id of facebook who requested this application by calling
1.string userId = Session["Facebook_userId"as String;
you can also get many information about user like name, sex, location,friends etc.
1.User usr=_fbService.GetUserInfo();
fb_userInfo_code_thumb2

Source Code


01.using System;
02.using Facebook;
03.public partial class Facebook_ConnectFacebook : System.Web.UI.Page
04.{
05.Facebook.Components.FacebookService _fbService = new Facebook.Components.FacebookService();
06.private const string FACEBOOK_API_KEY = "191856207506775";
07.private const string FACEBOOK_SECRET = "820c0b05b14a09365e072c8d37a8c49f";
08. 
09.protected void Page_Load(object sender, EventArgs e)
10.{
11._fbService.ApplicationKey = FACEBOOK_API_KEY; _fbService.Secret = FACEBOOK_SECRET;
12._fbService.IsDesktopApplication = false;
13.string sessionKey = Session["Facebook_session_key"as String;
14.string userId = Session["Facebook_userId"as String;
15. 
16.// When the user uses the Facebook login page, the redirect back here
17.// will will have the auth_token in the query params
18. 
19.string authToken = Request.QueryString["auth_token"];
20. 
21.// We have already established a session on behalf of this user
22.if (!String.IsNullOrEmpty(sessionKey))
23.{
24._fbService.SessionKey = sessionKey; _fbService.UserId = userId;
25.}
26.// This will be executed when Facebook login redirects to our page        
27.else if (!String.IsNullOrEmpty(authToken))
28.{
29._fbService.CreateSession(authToken);
30.Session["Facebook_session_key"] = _fbService.SessionKey;
31.Session["Facebook_userId"] = _fbService.UserId;
32.Session["Facebook_session_expires"] = _fbService.SessionExpires;
33.}
34.// Need to login        
35.else
36.{
37.Response.Redirect(@"http://www.Facebook.com/login.php?api_key=" + _fbService.ApplicationKey + @"&v=1.0\");
38.}
39. 
40.User usr = _fbService.GetUserInfo();
41.string t = string.Format("User Name:{0}, Sex:{1}, Location: {2}", usr.Name, usr.Sex, usr.CurrentLocation.City);
42.Response.Write(t);
43.}
44.}
Testing
Now we are done with coding. Its time for testing.
  • Run your website.
  • Put webaddress of your webpage in facebook developer section as canvas URL.
  • Canvas type should be IFrame.
fb_canvasUrl_thumb1
  • Click on Save changes.
  • now Facebook app has created.
image_thumb2
image_thumb4
  • Click on facebook banner.
  • It will ask Request for Permission. Click Allow.
image_thumb10
  • It will show all basic information of user on webpage.
image_thumb15
  • After that you can publish your app but having restriction from facebook that your application should 10 active member per month.