2010-07-22 84 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/