FB.login() 不工作。FB 弹出窗口未请求正确的权限。我可以清楚地看到,在源代码中,有一个 fn 处理程序使用正确的参数/正确设置的参数。我想了解为什么这不起作用?
这是我到目前为止的代码:
这是我设置权限列表的地方:
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"
}
}
我现在问了一个不同的用户,我作为管理员将他添加到我的沙箱中,他得到了所需的权限弹出窗口!所以,我认为这是要做的事情,我自己的用户名已经设置了这个权限或其他东西 - 即使我试图删除缓存等!
所以,没有问题需要解决。希望这对将来的其他人有用!
有经验的可以看看吗?
谢谢