I have an existing asp.net web app that uses facebook to authenticate users. I am using this facebook toolkit http://facebooktoolkit.codeplex.com/
My page has the following code:
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"
type="text/javascript"></script>
<script type="text/javascript">
//Login and redirect
function onLogin() {
window.location.href = "facebookusermapping.aspx";
}
</script>
<div class="FBLogin"><fb:login-button onlogin="onLogin()"></fb:login-button></div>
<script type="text/javascript">FB.init("<%=ConfigurationManager.AppSettings["ApiKey"]%>","xd_receiver.htm");</script>
My page is taking a while to load as it appears to be waiting for the facebook login button and things to load, so it has been suggested I do it asynchronously using this code:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'YOUR APP ID',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
but this is using the new Api where as the tool kit I think is using the old API?
When I use my existing code to check if the user is authenticated it 开发者_开发技巧always comes back as false.
Without having to re-write too much does anyone know of a way I can stop my page waiting for the facebook things to load?
If you must continue using the old toolkit, you should not switch to the new Javascript SDK. So keep your javascript code as it was. Regarding the loading problem, I am not sure what would cause it, but you definitely aren't going to solve it by switching to the new Javascript SDK unless you want to rewrite your whole app.
However, the Facebook Toolkit has been deprecated and doesn't support the new Facebook authentication systems. When Facebook does make the new authentication systems mandatory (next 3-6 months as best as I can tell) your app will break. So if this app needs to live past that time period you might as well work on upgrading it to the new auth systems. If you are upgrading your app or creating a new app you will want to use the new Facebook C# SDK which can be found at http://facebooksdk.codeplex.com or http://www.microsoft.com/facebook.
DISCLOSURE: I am the lead dev on the Facebook C# SDK.
精彩评论