Допустим, у меня есть приложение facebook, работающее с использованием JS SDK.
Первый пользователь нажимает на ССЫЛКУ А, и я вызываю 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
}
ТЕПЕРЬ предположим, что в ССЫЛКЕ 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()?