0

我似乎无法理解为什么我没有被重定向到相应的页面。它当然存在。不是重定向我,而是弹出一个屏幕并在一秒钟后消失。

<div id='fb-root'></div>
<script>
window.fbAsyncInit = function() 
{
    FB.init({
        appId: 'ID', 
        status: true, 
        cookie: true, 
        xfbml: true
    });

    FB.Event.subscribe('auth.login', function(response) 
    {
        window.location = '/fb_redirect.php';
    });
};

(function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = '//connect.facebook.net/en_US/all.js#xfbml=1&appId=ID';
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
</script>

<div class='fb-login-button' data-show-faces='false' scope='email' data-width='200' data-max-rows='1'></div>
4

1 回答 1

0

而不是这样做FB.Event.subscriber,请尝试以下操作:

FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
        if ( typeof response != 'undefined' && typeof response.authResponse != 'undefined' ) {
            window.location = '/fb_redirect.php';
        }
    } else if (response.status === 'not_authorized') {
        // the user is logged in to Facebook, 
        // but has not authenticated your app
    } else {
        // the user isn't logged in to Facebook.
    }
});

如果用户登录,该函数将返回connected,然后将他们重定向到您想要的任何页面。您可以为需要第一次登录的用户保留该FB.Event.subscriber功能,上面的代码将适用于返回用户。

于 2013-03-20T11:11:53.970 回答