We use the Facebook JavaScript SDK to authenticate our Facebook application. The application is configured with the Canvas URL as http://facebook.elgifto.com/Home/Index/ . Below is the code we use to authenticate the Facebook user.
<script type="text/javascript"> window.fbAsyncInit = function() { debugger; FB.init({ appId: '<%= ViewData["AppId"].ToString() %>', // App ID channelUrl: '<%= ViewData["ChannelUrl"].ToString() %>', // Channel File status: true, // check login status cookie: true, // enable cookies to allow the server to access the session xfbml: true, // parse XFBML oauth: true }); FB.Event.subscribe('auth.login', function(response) { if (response.status === 'connected') { // the user is logged in and connected to your // app, and response.authResponse supplies // the user's ID, a valid access token, a signed // request, and the time the access token // and signed request each expire var uid = response.authResponse.userID; var accessToken = response.authResponse.accessToken; startApp(uid, accessToken); } }); }; // Load the SDK Asynchronously (function(d) { var js, id = 'facebook-jssdk'; if (d.getElementById(id)) { return; } js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; d.getElementsByTagName('head')[0].appendChild(js); } (document)); function startApp(uid, accessToken) { var baseUrl = '<%= ViewData["AppBaseURL"].ToString() %>'; var redirectUrl = baseUrl + '?uid=' + uid + '&accessToken=' + accessToken; window.top.location.href = redirectUrl; //document.location = redirectUrl; } </script> <fb:login-button onlogin="initiateLogin()" perms="email,user_about_me,user_birthday,friends_about_me,friends_birthday">Login with Facebook</fb:login-button>
The code above does not work on Facebook when accessing http://apps.facebook.com/giftguru . However, we can access it through http://facebook.elgifto.com/Home/Index
source share