3

我是 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 页”警报。我不知道这段代码有什么问题。

谢谢。

4

2 回答 2

2

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

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

于 2013-01-22T23:56:54.243 回答
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。通常情况就是这样。

于 2013-01-22T23:42:03.907 回答