jQuery facebook FB.Event.subscribe не работает

Я разрабатываю приложение для холста Facebook.

Попытка войти и авторизовать мое приложение работает нормально.

Но этот сценарий не работает.

  1. Я открываю холст своего приложения https://apps.facebook.com/{appID}
  2. Нажмите кнопку Continue as.
  3. Появится всплывающее окно, и я нажму Continue As... для авторизации.
  4. Все выглядит нормально и перенаправляется на main.php
  5. Я иду в app settings и удаляю свое приложение. Обновление: также выйдите из всех аккаунтов Facebook; тот же результат!
  6. Здесь я ожидаю, что main.php предупредит меня, что пользователь удалил приложение (деавторизован), а затем вышел из системы.
  7. Ничего не происходит, и пользователь все еще на странице

Вот мой код:

// Load the SDK asynchronously
(function (d, s, id) {
    var js,
    fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id))
        return;
    js = d.createElement(s);
    js.id = id;
    js.src = "//connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}
    (document, 'script', 'facebook-jssdk'));

window.fbAsyncInit = function () {
    FB.init({
        appId: '{APPID}',
        cookie: true, // enable cookies to allow the server to access
        // the session
        xfbml: true, // parse social plugins on this page
        version: 'v2.10', // use graph api version 2.8
        status: true,
        oAuth: true

    });

    //start coding
    // here trying all types of events subscribe to check if something
    // missing or if I am subscribing the wrong event
    FB.Event.subscribe('auth.authResponseChange', function (response) {
        alert("authResponseChange=" + response);
    });

    FB.Event.subscribe('auth.login', function (response) {
        alert("login=" + response);
    });

    FB.Event.subscribe('auth.statusChange', function (response) {
        alert("statusChange=" + response);
    });

    FB.getLoginStatus(function (response) {
        alert("getLoginStatus=" + response);
    });

};

function ReadPHPresponse(data, cmd) {
    //TODO
}

// end coding

Среды приложений:

  1. Приложение в режиме разработки
  2. Он работает на локальном хосте WAMP
  3. Перепробовал все, что мог, чтобы отключить кеширование: WAMP, FB Calls, stats:true
  4. В настройках приложения я выбираю от canvas URL до https://localhost/ и домен приложения до localhost.
  5. В настройках продуктов для входа в Facebook я также проверил действительные URI перенаправления OAuth на https://localhost/.
  6. API ФБ версии 2.10

Все еще не срабатывает, и пользователи не выходят из системы, когда удаляют мое приложение. Если я обновлю main.php, он заработает, и пользователи выйдут из системы.

Я видел следующие похожие вопросы/ответы, но ни один из них не решает мою проблему.

почему facebook FB.Event.subscribe не работает?

как обнаружить выход из fb с помощью JS SDK без обновления страницы

JS-SDK FB не может обнаружить выход пользователя из FB напрямую

Как определить, что пользователь выходит из Facebook после входа в мое приложение?

Интересно, что не так.

Спасибо

Обновление: событие запускается, но после ожидания около часа; так что, скорее всего, это какая-то проблема с кэшированием! Не могу быть уверен.

Обновление 2:

Пытаюсь понять, что не так! Я пробовал следующее:

  1. Понизить версию jQuery с версии 3 до версии 2
  2. Загрузите мое приложение с Live Server, а не localhost
  3. Проверьте app settings
  4. Проверьте console.log на все; но ошибка не возвращается! с включенными всеми уровнями; Я получаю только [Violation] 'message' handler took 2450ms
  5. Проверил платформу Facebook, и это Healthy
  6. Загрузил Facebook SDK в <head> (sdk.js)
  7. Пробовал разные браузеры Chrome Latest, FF Latest и Edge Latest и Mobile, тот же результат. Возврат только Edge: The code on this page disabled back and forward caching. Что я считаю неуместным.
  8. Также пытался использовать FB API V 2.8.

По-прежнему нет радости

Вот мои настройки приложения:

Настройки приложения

Деавторизовать настройку обратного вызова

Это так смешно! Пожалуйста посоветуй!

Спасибо


person wpcoder    schedule 04.11.2017    source источник
comment
Каков фактический вариант использования, который потребует, чтобы это работало мгновенно? Пользователи, удаляющие приложение, просматривая его версию на холсте, вероятно, не повседневная вещь.   -  person CBroe    schedule 04.11.2017
comment
Нахождение в местном хосте; когда пользователь деавторизует приложение; нет смысла считать, что они вышли из системы. Кроме того, когда они выходят из Facebook, они остаются в приложении... в режиме разработки, я хочу видеть, что они вне моего приложения; потому что я разрабатываю на локальном хосте, а не прямо на холсте... в любом случае, почему вы думаете, что событие subscribe.event не срабатывает. На локальном хосте это занимает час, а затем срабатывает! Даже на холсте; это также займет час, если я деавторизую с другой страницы.   -  person wpcoder    schedule 04.11.2017
comment
Как это отвечает на мой вопрос, для чего вам это нужно в первую очередь? Если что-то пойдет не так во время вызовов API из-за отсутствия разрешений или недействительного токена доступа, ответ сообщит вам об этом. Итак, вопрос о том, почему это не кажется таким точным или своевременным, как вам хотелось бы, в стороне - объясните, где/как это вызывает настоящую проблему, пожалуйста. (И то, что вы разрабатываете на локальном хосте, не означает, что вы не можете протестировать его внутри холста iframe, кстати.)   -  person CBroe    schedule 04.11.2017
comment
1-я загружаю приложение на холст. 2-Откройте новую страницу и перейдите в настройки приложения. 3- деавторизовать приложение. 4-вернитесь к холсту. 5-Я все еще могу использовать приложение. это нормально. Я пытаюсь выйти из системы, как только пользователь деавторизует мое приложение. То же самое происходит, когда я выхожу из Facebook, он не выходит из моего приложения.... они могут напрямую перейти к URL-адресу и продолжать его использовать.... (вне холста)   -  person wpcoder    schedule 04.11.2017
comment
Даже пробовал разных провайдеров; это работает, но занимает около часа! Думаю, нужно сообщить об ошибке в FB; надеюсь я где-то ошибся!   -  person wpcoder    schedule 04.11.2017