Я разрабатываю приложение для холста Facebook.
Попытка войти и авторизовать мое приложение работает нормально.
Но этот сценарий не работает.
- Я открываю холст своего приложения https://apps.facebook.com/
{appID}
- Нажмите кнопку
Continue as
. - Появится всплывающее окно, и я нажму
Continue As
... для авторизации. - Все выглядит нормально и перенаправляется на main.php
- Я иду в
app settings
и удаляю свое приложение. Обновление: также выйдите из всех аккаунтов Facebook; тот же результат! - Здесь я ожидаю, что
main.php
предупредит меня, что пользователь удалил приложение (деавторизован), а затем вышел из системы. - Ничего не происходит, и пользователь все еще на странице
Вот мой код:
// 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
Среды приложений:
- Приложение в режиме разработки
- Он работает на локальном хосте WAMP
- Перепробовал все, что мог, чтобы отключить кеширование: WAMP, FB Calls,
stats:true
- В настройках приложения я выбираю от
canvas URL
доhttps://localhost/
и домен приложения доlocalhost
. - В настройках продуктов для входа в Facebook я также проверил действительные URI перенаправления OAuth на
https://localhost/
. - API ФБ версии 2.10
Все еще не срабатывает, и пользователи не выходят из системы, когда удаляют мое приложение. Если я обновлю main.php
, он заработает, и пользователи выйдут из системы.
Я видел следующие похожие вопросы/ответы, но ни один из них не решает мою проблему.
почему facebook FB.Event.subscribe не работает?
как обнаружить выход из fb с помощью JS SDK без обновления страницы
JS-SDK FB не может обнаружить выход пользователя из FB напрямую
Как определить, что пользователь выходит из Facebook после входа в мое приложение?
Интересно, что не так.
Спасибо
Обновление: событие запускается, но после ожидания около часа; так что, скорее всего, это какая-то проблема с кэшированием! Не могу быть уверен.
Обновление 2:
Пытаюсь понять, что не так! Я пробовал следующее:
- Понизить версию
jQuery
с версии 3 до версии 2 - Загрузите мое приложение с Live Server, а не
localhost
- Проверьте
app settings
- Проверьте
console.log
на все; но ошибка не возвращается! с включенными всеми уровнями; Я получаю только[Violation] 'message' handler took 2450ms
- Проверил платформу Facebook, и это
Healthy
- Загрузил Facebook SDK в
<head>
(sdk.js
) - Пробовал разные браузеры Chrome Latest, FF Latest и Edge Latest и Mobile, тот же результат. Возврат только Edge:
The code on this page disabled back and forward caching.
Что я считаю неуместным. - Также пытался использовать FB API V 2.8.
По-прежнему нет радости
Вот мои настройки приложения:
Это так смешно! Пожалуйста посоветуй!
Спасибо