Facebook JS Sdk - FB.getLoginStatus = 未定义

Posted

技术标签:

【中文标题】Facebook JS Sdk - FB.getLoginStatus = 未定义【英文标题】:Facebook JS Sdk - FB.getLoginStatus = undefined 【发布时间】:2011-08-28 21:03:54 【问题描述】:

我正在使用 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 框(因为我已经登录)并刷新页面,再次显示“未定义”。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

您在其中混合了 OAuth 和 OAuth 2 对象。使用oauth : true(推荐为all apps must use OAuth 2 by Oct 1)将init 设置为使用OAuth 2 并始终使用response.authResponse 而不是response.session,或者使用OAuth 1 并始终使用response.session。如果您使用 OAuth 2,您还需要使用 scope 而不是 perms 来获得所需的权限。

【讨论】:

我绝不会认为这是一个修复程序!哇,谢谢史蒂夫!

以上是关于Facebook JS Sdk - FB.getLoginStatus = 未定义的主要内容,如果未能解决你的问题,请参考以下文章

Facebook JS Sdk - FB.getLoginStatus = 未定义

Passport.js:passport-facebook-token 策略,通过 JS SDK 登录然后验证护照?

如何将 Facebook SDK 与 Nuxt.js 一起使用?

Facebook JS+PHP SDK 返回异常 此授权码已过期

将 Facebook PHP 或 JS SDK 连接到 Joomla

FB JS-SDK 无法检测到用户直接退出 FB