![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: 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"});
});
Приводит к кратковременному появлению диалога с просьбой о пермишене, который сразу после появления немедленно исчезает.В checkPermission после этого вызывается колбэк error.Никто не сталкивался? |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,282
|
Цитата:
FB.getLoginStatus(function(response) {},true|false); Ей вторым параметром сообщается делать ли новый запрос, либо взять данные из кеша.С её помощью пермишен не запросишь. Добавлено через 2 минуты к тому же если бы это был кеш, после перезагрузки он снова спрашивал бы, но такого не наблюдается |
|
|||||
|
Регистрация: Oct 2006
Сообщений: 2,282
|
Цитата:
Еще раз Цитата:
Вопрос решился.Оказывается для повторного запроса пермишена надо делать так: Последний раз редактировалось undefined; 21.12.2015 в 16:15. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|