我有一个现有的asp.net网络应用程序,它使用Facebook来验证用户。我正在使用这个facebook工具包http://facebooktoolkit.codeplex.com/
我的页面包含以下代码:
<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>
我的页面需要一段时间才能加载,因为它似乎正在等待Facebook登录按钮和要加载的内容,因此建议我使用此代码异步执行:
<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>
但这是使用新的Api作为我认为使用旧API的工具包吗?
当我使用现有代码检查用户是否经过身份验证时,它总是返回false。
不必重写太多,有没有人知道我可以阻止我的页面等待facebook加载的方式?
答案 0 :(得分:0)
如果必须继续使用旧工具包,则不应切换到新的Javascript SDK。所以保持你的javascript代码不变。关于加载问题,我不确定是什么原因引起的,但你肯定不会通过切换到新的Javascript SDK来解决它,除非你想重写整个应用程序。
但是,Facebook Toolkit已被弃用,不支持新的Facebook身份验证系统。当Facebook确实强制要求新的身份验证系统时(我认为最好的3-6个月)你的应用程序将会中断。因此,如果此应用程序需要超过该时间段,您可以将其升级到新的身份验证系统。如果您要升级应用程序或创建新应用程序,则需要使用可在http://facebooksdk.codeplex.com或http://www.microsoft.com/facebook找到的新Facebook C#SDK。
披露:我是Facebook C#SDK的主要开发者。