Today we have to see Asp.Net MVC3 Razor with
facebook Authentication before we see details first u have to Register u r
Application in facebook developer(https://developers.facebook.com/apps).and u
got AppID.
Ok now lets see step by step
Step 1 :Open VS 2010 go to project and select Asp.Net MVC 3 Web
Application
Step 2 :select empty and select Razor
Step 3 :Now go to Controllers and right click and give Some name like
Home Controllers and add this code
public
ActionResult Index()
{
if (!string.IsNullOrEmpty(Request.Params["signed_request"]))
{
ViewBag.IsAuthenticated =true;
Dictionary<string,string>
info = Utility.DecodePayload(Request.Params["signed_request"]);
Session["access_token"]
= info;
Facebook.FacebookAPI api = new
Facebook.FacebookAPI(info["oauth_token"]);
var json = api.Get("/me");
}
else
ViewBag.IsAuthenticated = false;
return View();
}
Step 4 :Now go to Model and
create utility class(Here u have to Add Facebook API throw reference in our App)
public
class
Utility
{
public static Dictionary<string,
string> DecodePayload(string
payload)
{
var parameters = new
Dictionary<string,
string>();
try
{
string[] sB64String = payload.Split('.');
payload =
payload.Replace((sB64String[0] + "."),
string.Empty);
//End
var encoding = new
UTF8Encoding();
var decodedJson = payload.Replace("=",
string.Empty).Replace('-',
'+').Replace('_',
'/');
var base64JsonArray =
Convert.FromBase64String(decodedJson.PadRight(decodedJson.Length + (4 -
decodedJson.Length % 4) % 4, '='))
var json = encoding.GetString(base64JsonArray);
var jObject = JSONObject.CreateFromString(json);
//parameters.Add("liked",
jObject.Dictionary["page"].Dictionary["liked"].Boolean.ToString());
{
parameters.Add("isAuthorized",
"true");
parameters.Add("oauth_token",
jObject.Dictionary["oauth_token"].String);
parameters.Add("profile_id",
jObject.Dictionary["user_id"].String);
}
else
{
parameters.Add("isAuthorized",
"false");
parameters.Add("oauth_token",
string.Empty);
}
}
catch { }
return parameters;
}
}
Step 5 :now go to Home Controllers and right click on Index and add View
after adding u have to write this code
index.chtml code is
<html
xmlns:fb="http://www.facebook.com/2008/fbml">
<body>
<script
src="http://connect.facebook.net/en_US/all.js"></script>
<div
id="fb-root">
</div>
<script>
// assume we
are already logged in
FB.init({ appId:
'161729093918865', xfbml:
true, cookie: true,
oauth: true });
if
([email protected]().ToLower())
{
window.top.location =
"http://www.facebook.com/connect/uiserver.php"
+
"?app_id=" +
'161729093918865'
+
"&next=" + 'http://apps.facebook.com/spatialidea/'
+
"&display=page"
+
"&cancel_url=" +
'http://www.facebook.com/'
+
"&locale=en_IN"
+
"&perms=publish_stream,email&method=permissions.request"
+
"&return_session=1&session_version=3&fbconnect=0&canvas=1&legacy_return=1";
}
</script>
</body>
</html>
Step 6 : Now run the App