2012-01-13 61 views
0

在我的站點我使用Facebook API實現認證。Facebook API認證PHP

<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和令牌值是空的。 任何解決方案? THK

回答

0

您可以通過分配JS-SDK的session變量FB.getAuthResponse功能

使用

var session = FB.getAuthResponse(); 

而不是

var session = FB.getAuthResponse 

還使用了不正確的屬性名稱,authResponse犯了一個錯誤使用FB.getLoginStatus相同的格式,格式不是返回的格式以前版本的JS-SDK的。

uid命名userIDaccess_tokenaccessToken

+0

是的,我已經改變了,但:-( – Maurizio 2012-01-13 10:46:48

+0

session.uid和session.access_token是空的。我不知道不行。 – Maurizio 2012-01-13 10:51:00

+0

@Maurizio看到我的更新答案 – 2012-01-13 14:39:09