У меня была похожая проблема с FB API.Оказалось, что мое приложение на Facebook было неправильно настроено.Пожалуйста, убедитесь, что это не так для вас.Моя проблема заключалась в том, что мой параметр " Site URL " в приложении FB указывал на https , но я использовал протокол http для разработки.Любой вызов против FB api после FB.init
не вызывал мои функции обратного вызова.Поэтому первое, что нужно сделать, - это дважды проверить конфигурацию приложения.
Теперь, если по какой-то причине вы зависите от API FB, но вы хотите иметь запасной вариант на случай, если он не работает - обходной путь с таймером должен бытьподходит тебе.Просто установите таймер и отключите его, если FB Api даст вам правильный ответ.Если нет - отступите к некоторой пользовательской функции, которая будет выполнять некоторую дополнительную логику.
function callFbApi() {
var timeoutHandler = setTimeout(function() { requestFailed(); }, 1000);
function requestFailed() {
// When this happens, it means that FB API was unresponsive
doSomeFallbackWork();
alert('hey, FB API does not work!');
}
FB.getLoginStatus(function(response) {
clearTimeout(timeoutHandler); // This will clear the timeout in case of proper FB call
doSomeUsualWorkAfterFbReplies();
return false;
}, true);
}