用户登录后,facebook检查是否要求其他权限

时间:2012-02-05 00:31:33

标签: facebook facebook-javascript-sdk

假设我有一个使用JS SDK运行的facebook应用程序。

第一个用户点击LINK A,我打电话给FB.login()询问“电子邮件”权限。

<a href="#" onclick="doLogin();>LINK A</a>
<script>
function doLogin() {
FB.login(function (res) {
//res contains authResponse, i.e. the user is logged in.
}, { scope : 'email'} });
}
</script>

然后我会检查authResponse以检查用户是否登录。

if(res.authResponse) {
//User logged in
} else {
//User NOT logged in
}

现在让我们说在LINK B上,我想要求“user_birthday”权限:

FB.login(function (res) {
//Now res.authResponse is set even if user did NOT grant access to the "user_birthday" permission
}, { scope : 'user_birthday'} });

但是,当发出“user_birthday”请求时,用户已经登录到应用程序 - 因此无论用户是否授予了对其他权限的访问权限,或者点击取消,都将设置authResponse。

有没有办法检查用户是否提供了额外的权限?

我知道我可以在api / me / permissions上查找 - 但是我想知道是否有办法在FB.login()回调中执行此操作?

1 个答案:

答案 0 :(得分:2)

是的,使用该用户访问令牌,查询me/permissions

FB.api('me/permissions',function(permsArr){
  var canGetBirthday = PermissionExists(permsArr, 'user_birthday'); // write your own PermissionsExists parser....
});