3

我有这个js:

$(document).ready(function () {
  $('.login-link').click(function () {
    FB.login(function(response) {
      console.log(response);
      if (response.authResponse) {
        console.log('Welcome!  Fetching your information.... ');
        FB.api('/me', function(resp) {
          console.log('Good to see you, ' + resp.name + '.');
        });
      } else {
        console.log('User cancelled login or did not fully authorize.');
      }
    }, {scope: 'email'});

  });
});

这是必然的<div class="login-link">FB modal login</div>

问题是当我单击 FB.login 按钮并授权应用程序时,response.authResponse 为 null 并且 response.status 为 not_authorized。如果我再次单击它或刷新页面,它显示用户已授权该应用程序,但显然我第一次需要它。代码取自Facebook,稍作修改。

任何想法如何解决这个问题?

4

1 回答 1

3

如果其他人也在努力解决这个问题,只是想展示一个解决方法。

$(document).ready(function () {
  $('.login-link').click(function () {
    FB.login(function(response) {
      FB.getLoginStatus(function (resp) {
        console.log(resp);
      }, true);
    }, {scope: 'email'});
  });
});

我保留我的问题,因为它并没有真正回答为什么 FB.login 不起作用的问题,但至少提供了一个临时解决方案。

于 2013-02-15T13:54:21.923 回答