Php 发布到facebook如何在不刷新的情况下获得响应

Php 发布到facebook如何在不刷新的情况下获得响应,php,jquery,ajax,Php,Jquery,Ajax,我有这个代码,如果用户没有通过facebook登录,请检查显示facebook,以便用户通过facebook登录 if($req_user['oauth_provider'] != "facebook") { <input type="checkbox" name="fb_post" id="fb_post" value="1" onclick="facebookPermissionsGrant(); return false;">} ?> if($req\u用户['o

我有这个代码,如果用户没有通过facebook登录,请检查显示facebook,以便用户通过facebook登录

if($req_user['oauth_provider'] != "facebook")
{
   <input type="checkbox" name="fb_post" id="fb_post" value="1" onclick="facebookPermissionsGrant(); return false;">}
?>
if($req\u用户['oauth\u提供者]!=“facebook”)
{
}
?>
如果用户通过facebook登录,则选中“显示”复选框:

if($req_user['oauth_provider'] == "facebook" && $CONFIG['fb_status'] == 1) {
 <input type="checkbox" name="fb_post" id="fb_post" value="1" checked>
}
if($req\u user['oauth\u provider']==“facebook”&$CONFIG['fb\u status']==1){
}
我遇到的问题是,如果用户没有通过facebook登录,并检查checbox,然后在facebook上输入用户名和密码。他必须再次刷新页面才能看到复选框被选中。
在ajax或jquery中是否有一种方法可以让我不必刷新页面,并且如果用户登录,它将显示复选框?

是的,有。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的更多信息: