3

我是新来的Facebook应用程序开发人员。我试图从facebook获取访问令牌。对于这一点,我想用下面的代码无法从Facebook获取登录状态

<html> 
<body> 
<fb:login-button></fb:login-button> 
<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 
window.fbAsyncInit = function() { 
    FB.init({appId: 'appId', status: true, cookie: true, xfbml: true}); 
    alert('page 1'); 
    FB.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 
     alert('Page 2'); 
     // connected 
     } else if (response.status === 'not_authorized') { 
     // not_authorized 
     } else { 
     // not_logged_in 
     } 
    }); 
} 
</script> 
</body> 
</html> 

当我执行上面的代码,它显示了一个登录按钮,我可以成功地登录到检查我的登录状态。我可以获得'第1页'的提醒,但我无法获得'第2页'的提醒。我不知道这段代码有什么问题。

谢谢。

回答

2

检查您的应用程序中是否已启用Sanbox模式。如果是,并且您目前没有以具有管理员或开发者角色的用户身份登录,则会发生这种情况。尝试一段时间禁用沙盒后是否可以使用。检查这个问题的答案 - https://stackoverflow.com/a/8485361/1816426

当然,我假设,appId: 'appId'部分只是一个示例,并且您的代码在应用程序设置中获取的应用程序ID是正确的。

0

的一些技巧让你去:

1)检查您的appid是有效的(我希望你没有字面上写appId,反倒插入一个AppID您注册)

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

2)尽量做看实际响应:

alert(response);

*响应的细节在这里说:https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

但我的猜测是,您的应用程序没有正确注册,或者,你有没有在你的appID域插入正确的appid。通常情况是这样。