Показать сообщение отдельно
Старый 20.12.2015, 20:40
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 1  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,282
По умолчанию Не работает повторный запрос пермишена

Использую следующую 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.Никто не сталкивался?