2011-10-13 72 views
0

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

<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> 

回答

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,但旧响应.session应该不再有效。

+0

非常感谢!我知道这一点,但我从来没有意识到失踪。 – Badarse

+0

欢迎您:)很高兴能帮到您 –

+0

但现在还有另外一个问题。当FB.init中的oauth:true时,FB.ui不显示对话框。当我从FB.init中删除oauth时:true。知道为什么发生这种情况? – Badarse

相关问题