Facebook graph api Facebook JS Sdk-FB.getLoginStatus=未定义
我正在使用Facebook的JavaScript SDK,并试图确定用户是否登录,我有以下代码: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
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
来获得所需的权限。我从来没有想过这是一个解决方案!哇,谢谢史蒂夫!