FB.Login" response.authResponse"具有扩展权限,返回方式不同

时间:2011-11-07 22:16:52

标签: facebook facebook-graph-api

我现在已经尝试过这一段时间了,经过大量研究后还没有得出明确的结论。

这是我的代码:

FB.login(function(response) {
    if (response.authResponse) {
        console.log("permissions granted");
    } else {
        console.log("permissions not granted");
    }
}, {scope: 'email, publish_stream, user_birthday'});

当一个新用户进入应用程序,并且在点击时触发FB.login时,他们会弹出一个窗口,要求用户“登录”并请求电子邮件和生日权限。

如果用户此时单击取消,我们将获得“未授予权限”日志。

如果他们此时单击登录,则会显示另一个对publish_stream的权限请求。

如果用户单击“取消”,则“权限已授予”日志触发,尽管事实上并非授予范围内的所有权限。

如果用户单击了取消,然后返回到应用程序并再次触发FB.Login功能,则会提示他们授予publish_stream权限。如果他们这次单击取消,则会触发“未授予权限”日志。

这是预期的行为吗?为什么Facebook两次表现不同?如果是预期的,我如何测试是否授予了所有权限,而不仅仅是第一次授权?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

这是因为它是一个扩展的权限。这些都是可以撤销的。您可以按照https://developers.facebook.com/docs/reference/api/permissions/

中的说明拒绝这些内容

编辑: 您可以使用带有/me/permissions

的图谱API查看权限