使用FB.login检索访问令牌

时间:2011-10-13 18:04:18

标签: facebook oauth access-token

我已多次重新检查我的代码,但我无法使用FB.login函数在页面上显示访问令牌。一切正常,FB.ui在返回URL中获取访问令牌,状态检查都很好,但当用户通过FB.login登录时,访问令牌不会出现在tokendiv中。请告诉我我做错了什么!

<body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js">
</script>
<script>
FB.init({ 
appId:'113381182103752', cookie:true, 
status:true, xfbml:true 
});
FB.getLoginStatus(function(response) {
if(response.status=="connected")
{
document.getElementById("status").innerHTML="User is connected";
}
else if(response.status=="notConnected")
{
FB.ui({
client_id: '113381182103752',
method: 'oauth',
redirect_uri: 'http://127.0.0.1:8888/test2.php',
response_type: 'token'
});
document.getElementById("status").innerHTML="User is logged in but not connected";
}
else if(response.status=="unknown")
{
FB.login(function(response) {
if(response.authResponse)
{
var token = response.authResponse.accessToken;
document.getElementById("tokendiv").innerHTML=token;
}
});
document.getElementById("status").innerHTML="User is logged out";
}
});
</script>
<div id="tokendiv"></div>
<div id="status"></div>
</div>
</body>

1 个答案:

答案 0 :(得分:0)

尝试写作

FB.init({ 
appId:'113381182103752', cookie:true, 
status:true, xfbml:true, oauth:true 
});

而不是

FB.init({ 
appId:'113381182103752', cookie:true, 
status:true, xfbml:true 
});

如果你不这样做,你将无法在登录功能中获得response.authResponse,但旧的response.session将不再有效。