在我的网站中,我正在使用Facebook API实现身份验证。
<fb:login-button onlogin="fbLoginEvent(arguments)">Enter with Facebook</fb:login-button>
我的功能fbLoginEvent:
function fbLoginEvent( args ) {
//console.log( "fbLogin", args );
//var session = FB.getSession();
var session = FB.getAuthResponse();
if (session) {
fbCheckSession(session, function(data) {
if (data.result) {
fbLoginNow();
} else {
$('#facebook-register').data("overlay").load();
}
});
}
}
我检查会话的功能:
var fbLogin = { status: false, uid: 0, access_token: "" };
function fbCheckSession( session, callback ) {
if ( session && $.type(callback) == "function" ) {
ajaxCall( "facebook", "check_session", {uid: session.uid, token: session.access_token}, function(data){
if ( data.result ) {
fbLogin.status = true;
fbLogin.fbuid = session.uid;
fbLogin.uid = data.info.id;
fbLogin.access_token = session.access_token;
callback( { result: true, info: { name: data.info.name, fbLogin: fbLogin } } );
} else {
callback( { result: false } );
}
});
}
}
我做的我注意到uid和tokens值为空。有什么解决方案吗?Thk
您将session
变量分配给JS-SDK 的FB.getAuthResponse
函数时犯了一个错误
使用
var session = FB.getAuthResponse();
代替
var session = FB.getAuthResponse
您也使用了不正确的属性名称,authResponse
使用与FB.getLoginStatus相同的格式,而不是以前版本的JS-SDK的getSession
返回的格式。
uid
命名为userID
,access_token
是accessToken