2011-07-30 38 views
0

我有這樣的代碼,如果用戶沒有在Facebook上檢查顯示登錄Facebook的用戶通過Facebook登錄。投遞到Facebook如何讓性反應而無需刷新

if($req_user['oauth_provider'] != "facebook") 
{ 
    <input type="checkbox" name="fb_post" id="fb_post" value="1" onclick="facebookPermissionsGrant(); return false;">} 
?> 

如果用戶通過Facebook展示覆選框登錄檢查:我有

if($req_user['oauth_provider'] == "facebook" && $CONFIG['fb_status'] == 1) { 
<input type="checkbox" name="fb_post" id="fb_post" value="1" checked> 
} 

問題是,如果用戶沒有通過Facebook登錄並檢查checbox和Facebook上輸入用戶名和密碼。他必須再次刷新頁面才能查看該框。 有沒有在Ajax或jQuery中的方式,以便我不必刷新頁面,如果用戶登錄它會顯示框檢查?

回答

0

是的,有。 Facebook的JavaScript API有FB.Event.Subscribe,當用戶的登錄狀態發生變化時,它會通知您的JavaScript。

例子:

window.fbAsyncInit = function() { 
    FB.init({ 
     appId : 'YOURAPPID', 
     status : true, // check login status 
     cookie : true, // enable cookies to allow the server to access the session 
     xfbml : true, // parse XFBML 
     channelUrl : 'http://www.yourdomain.com/channel.html', // Custom Channel URL 
     oauth : true //enables OAuth 2.0 
    }); 

    // retrieve the login status. 
    FB.getLoginStatus(function(response) { 
     if (response.authResponse) update_user_is_connected(); 
     else update_user_is_not_connected(); 
    }); 

    // This will be triggered as soon as the user logs into Facebook (through your site) 
    FB.Event.subscribe('auth.login', function(response) { 
     update_user_is_connected(); 
    }); 
}; 

你可以閱讀更多關於FB.Event.subscribe這裏:http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/