Facebook api身份验证PHP


Facebook api authentication PHP

在我的网站中,我正在使用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命名为userIDaccess_tokenaccessToken