0

FB.login() 不工作。FB 弹出窗口未请求正确的权限。我可以清楚地看到,在源代码中,有一个 fn 处理程序使用正确的参数/正确设置的参数。我想了解为什么这不起作用?

这是我到目前为止的代码:

http://jsbin.com/IteY/1/

这是我设置权限列表的地方:

facebook.login(function(response) {
    console.log(response);
}, {scope: 'email,user_likes'});

根据文档(https://developers.facebook.com/docs/reference/javascript/FB.login/

通过在 login() 的 fn 处理程序中执行 console.log,我得到了 fn 函数(response){ ... } 和 {scope: 'email,user_likes'}

我发现其他一些用户在 SO 中使用 FB SDK 报告了同样的问题。我尝试使用“perms”而不是“范围”的提示,但我得到:

OAuth2 规范指出“perms”现在应该称为“范围”。请更新。

  • 似乎不是问题。这也表明参数正在发送到那里。去想知道为什么不工作?!我也清理了缓存

  • 最初我已经报告了这个问题(AngularJS: DI Error - No module: $facebook, why is not working?),这个问题已经解决了。现在可以访问 FB 对象,我无法从用户那里获得正确的权限。我确定这是与 Facebook API 相关的问题,而不是 Angular 模块

**** 我还尝试使用 .api 来检查权限,例如:

facebook.api('/me/permissions', function (response) {
    console.log(response);
} );

console.log 报告:

对象{错误:对象}

***** 现在我尝试使用 access_token 通过图形进行访问:

https://graph.facebook.com/me/permissions?access_token=XXXXXXXX

我可以看到正确的权限,但 Facebook 登录弹出窗口从未问过我这些权限?不应该吗?

  {
     "data": [
        {
           "installed": 1,
           "basic_info": 1,
           "email": 1,
           "read_friendlists": 1,
           "user_likes": 1,
           "user_online_presence": 1,
           "user_friends": 1
        }
     ],
     "paging": {
        "next": "xxxxxxx"
     }
  }

我现在问了一个不同的用户,我作为管理员将他添加到我的沙箱中,他得到了所需的权限弹出窗口!所以,我认为这是要做的事情,我自己的用户名已经设置了这个权限或其他东西 - 即使我试图删除缓存等!

所以,没有问题需要解决。希望这对将来的其他人有用!

有经验的可以看看吗?

谢谢

4

1 回答 1

0

尝试将侦听器附加到 facebook 登录事件/状态更改:

$facebookProvider.Event.subscribe('auth.authResponseChange', function (response) {
    console.log(response);
})

并查看响应元素以查看是否有错误

于 2013-08-23T19:10:37.803 回答