Использую следующую js-функцию для определения есть ли пермишен:

Код:
checkPermission: function(permission, success, error) {
console.log('Checking permissions');
FB.api('/'+app.user.id+'/permissions', function(r) {
var res = false;
for (var i = 0; i < r.data.length; i++) {
if (r.data[i].permission == permission && r.data[i].status == 'granted') {
res = true;
break;
}
}
if (res && success) success();
else if (!res && error) error();
});
}
где:
permission - строка, название пермишена
success -колбэк, дергается если пермишен есть
error - колбэк, дергается если пермишена нет
Собственно когда требуется дернуть некий api, требующий пермишен я делаю:

Код:
checkPermission("user_photos",function() {
// some api calls
},function() {
// т.к. пермишена нет, запрашиваем его повторно
FB.login(function(response) {
//check again if permission is granted
checkPermission("user_photos",function() {
// some api calls
},function() {
// не дали пермишен, показываем диалог с ошибкой
});
},{scope:"user_photos"});
});
Например, для пермишена 'publish_actions' данная логика прекрасно работает. А вот для 'user_photos' если юзер сразу не дал пермишен, повторный вызов

Код:
FB.login(function(response) {..},{scope:"user_photos"});
Приводит к кратковременному появлению диалога с просьбой о пермишене, который сразу после появления немедленно исчезает.В checkPermission после этого вызывается колбэк error.Никто не сталкивался?