我现在已经尝试过这一段时间了,经过大量研究后还没有得出明确的结论。
这是我的代码:
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两次表现不同?如果是预期的,我如何测试是否授予了所有权限,而不仅仅是第一次授权?
非常感谢任何帮助。
答案 0 :(得分:2)
这是因为它是一个扩展的权限。这些都是可以撤销的。您可以按照https://developers.facebook.com/docs/reference/api/permissions/
中的说明拒绝这些内容编辑: 您可以使用带有/me/permissions
的图谱API查看权限