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 返回异常 此授权码已过期