Facebook graph api Facebook JS Sdk-FB.getLoginStatus=未定义

Facebook graph api Facebook JS Sdk-FB.getLoginStatus=未定义,facebook-graph-api,facebook,facebook-javascript-sdk,Facebook Graph Api,Facebook,Facebook Javascript Sdk,我正在使用Facebook的JavaScript SDK,并试图确定用户是否登录,我有以下代码: window.fbAsyncInit = function() { FB.init({ appId:'139894666087975', cookie:true, status:true, xfbml:true }); $('.login_fb').clic

我正在使用Facebook的JavaScript SDK,并试图确定用户是否登录,我有以下代码:

        window.fbAsyncInit = function() {       
             FB.init({ 
                appId:'139894666087975', cookie:true, status:true, xfbml:true 
             });

            $('.login_fb').click(function(){
                FB.login(function(response) {
                if(response.session)
                {   
                    if (response.perms) {
                        window.location.reload();
                    }
                }
                },{perms:'email,user_birthday,user_hometown,user_location,publish_stream'});
            });

            FB.getLoginStatus(function(response) {
                                       alert(response.authResponse);
              if (response.authResponse) {
                  alert(response.authResponse);
              } else {
                $.blockUI({ 
                    message: $('#fblogin'),
                    css: {
                        top: '9%',
                        left: ($(window).width() - 700) /2 + 'px',
                        width: '700px',
                        cursor: 'hand',
                        border:  '10px solid #ccc', 
                        }
                }); 
            }
            }); 
        };  
getLoginStatus的response.AuthResponse为“未定义”,但我实际上是使用为此应用设置的权限登录的

知道为什么它会继续显示为未定义的吗?当我再次尝试登录时,它只是关闭Facebook框(因为我已经登录)并刷新页面,再次显示“未定义”


谢谢你的帮助

您在其中混合了OAuth和OAuth 2对象。使用
OAuth:true
(建议使用)将init设置为使用OAuth 2,并一致使用
response.authResponse
,而不是
response.session
,或者使用OAuth 1并一致使用
response.session
。如果您转到OAuth 2,您还需要使用
scope
而不是
perms
来获得所需的权限。

我从来没有想过这是一个解决方案!哇,谢谢史蒂夫!