2010-07-22 87 views
3

我想獲得登錄Facebook用戶的access_token。如何檢索臉書oauth 2.0 access_token

我得到這樣的事情.. URL,然後我是檢索代碼的代碼..

它說先導,以換取在的access_token ...

https://graph.facebook.com/oauth/access_token? CLIENT_ID = XXXXXXXXXXXXXX & REDIRECT_URI = http://www.my-site.com/& client_secret = XXXXXXXXXXXXXXXXXXXXX & 碼= 2.hJFWoMlLf3tLOSos_qNCBg __ 3600.1279836000-10000100XXXXXXX |。kGwPB4y5K_-ijD9_1CfjSpT,可以嗎..

我如何使用Exchange它的什麼的access_token或FB.api jQuery的或JavaScript ..

當我插上這個URL地址欄..我能看到..的access_token

我很感激,如果有人能告訴我如何檢索使用Java類中的access_token cript或jquery。

謝謝。

回答

1

如果您使用的是JavaScript的SDK,然後在登錄的用戶,獲得訪問令牌在JavaScript代碼後,很簡單,只要:

FB.getSession().access_token 

然而,如果用戶登錄getSession可能返回null所以正確的方法是在訪問令牌之前首先檢查null。

var session = FB.getSession(); 
if(session != null) { // user is still logged in 
    console.log(session.access_token); 
} 
2

據Facebook和我與API的親身經歷中,FB.getSession()功能已被廢棄,應該拋出一個異常,如果調用。

來自Facebook:

的FB.getAuthResponse方法對於FB.getSession方法將其遷移至OAuth 2.0後棄用的替代品。

相反,你應該使用getLoginStatus回調 -


FB.getLoginStatus(function(response) { 
    var token = response.authResponse.accessToken; 
}); 

//Example structure of response object 
var eg = 
{ 
    status: 'connected', 
    authResponse: { 
     accessToken: '...', 
     expiresIn:'...', 
     signedRequest:'...', 
     userID:'...' 
    } 
}; 

來源:http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/