У Facebook FB.logout () все еще есть диалоговое окно? - PullRequest
0 голосов
/ 25 мая 2011

Используя новый JS SDK от FB, я замечаю, что нет диалогового окна, сообщающего пользователю, что он выйдет из Facebook при выходе из моего приложения.

То, что происходит сейчас, является некоторой проблемой UI / UX: пользователь выходит из моего приложения, но также автоматически выходит из Facebook без предупреждения, что может раздражать.

Кто-нибудь решил эту проблему с помощью методов FB SDK или какой-либо другой функции в FB.logout();?

Спасибо за помощь.

Ответы [ 3 ]

1 голос
/ 25 мая 2011

Для этого вам нужно будет создать собственный диалог пользовательского интерфейса (или использовать устаревший connect javascript sdk).Вы можете либо открыть диалоговое окно с пользовательским интерфейсом, предупреждая о том, что они выйдут из вашего приложения и из Facebook, либо указать метод обратного вызова в функции FB.logout, который впоследствии сообщит им, что они вышли из обоих.

1 голос
/ 25 мая 2011

К сожалению, это так, как указано здесь: http://developers.facebook.com/docs/reference/javascript/FB.logout/. Поскольку это так, как разработано в Javascript SDK, я довольно уверен в предположении, что библиотека на стороне сервера даст те же результаты.

0 голосов
/ 26 октября 2011

Я нашел трюк, который выводит пользователя из вашего приложения только на стороне клиента, но оставляет его авторизованным на Facebook:

FB._authResponse = null;
FB._userStatus = null;

После этого вызовы FB.api вернут правильную ошибку:

>>> FB.api('me', log)
{"error":{"message":"An active access token must be used to query information about the current user.","type":"OAuthException"}}

Также FB.getLoginStatus и FB.getAuthResponse возвращают ноль или ведут себя так, как будто пользователь не вошел в систему:

>>> FB.getLoginStatus(log)
{"status":null,"authResponse":null}

Вы даже можете снова войти в систему с помощью FB.login ()

Но после перезагрузки Пользователь снова будет автоматически авторизован, если у вас есть status: true в вашем FB.init config:

FB.init({
    appId      : 'yourappid',
    status     : false, // will not load the user automatically on pageload/refresh
    cookie     : true,  // will leave the userid in FB._userID
    oauth      : true,
    xfbml      : true
});

Надеюсь, это немного поможет.

...