Выход из Facebook C # SDK на WP7 - PullRequest
6 голосов
/ 05 июня 2011

Я пытаюсь добавить функцию для выхода из системы, которая вызывается в событии щелчка ApplicationBarMenuItem, следуя инструкциям в этом блоге

Вот как выглядит мой код:

    var oauth = new FacebookOAuthClient();

    var logoutParameters = new Dictionary<string, object>
          {
              { "next", "http://www.facebook.com" }
          };

    var logoutUrl = oauth.GetLogoutUrl(logoutParameters);

    LayoutRoot.Children.Add(FacebookLoginBrowser);
    FacebookLoginBrowser.Navigate(new Uri(logoutUrl.AbsoluteUri, UriKind.Absolute));

Я ожидал, что этот код сделает выход пользователя из Facebook после завершения события Navigated, а затем отобразит любой URL-адрес, переданный в параметре (в данном случае facebook.com). Тем не менее, я вижу, что он всегда загружает "http://m.facebook.com/" независимо от того, что передается, и он не выходит из Facebook. Мне все равно, что он загружается после (это было бы здорово, но в в этот момент я просто хочу, чтобы он выполнил действие выхода из системы, чтобы пользователь мог выйти и войти в систему, когда они снова запустят мое приложение.) Единственный способ, которым я могу успешно выйти из системы, - это если они понимают, когда страница загружается, им нужно прокрутить вниз увеличьте масштаб и нажмите «Выйти» вручную внизу страницы, что просто неприемлемо для пользователя.

Я также скачал пример кода из этого блога, и он примерно такой же.

Я видел это и это сообщение , и используемый URL-адрес довольно близок к тому, что возвращает oath.GetLogoutUrl (logoutParameters), но я попытался с помощью тот же результат:

var logoutUrl = new Uri("https://www.facebook.com/logout.php?next=http://www.facebook.com&access_token="+fbClient.AccessToken);

Это определенно остановка корабля для моего приложения, поэтому любая помощь или предложения, которые кто-либо может предоставить, будут очень благодарны!

Ответы [ 3 ]

2 голосов
/ 06 июня 2011

Видимо, он сломан на стороне Facebook: http://bugs.developers.facebook.net/show_bug.cgi?id=17217

1 голос
/ 29 июня 2011

Оказывается, проблема в том, что домен в URL-адресе перенаправления не совпадает с доменом, указанным в качестве домена сайта в настройках приложения на Facebook.Очевидно, что никто не мог этого увидеть, потому что у вас нет доступа к настройкам моего приложения, но это некоторая подсказка, что мое приложение не может быть зарегистрировано с "http://www.facebook.com" (так как я считаю, что домен должен быть уникальным).

Решение состоит в том, чтобы использовать мой собственный веб-сайт в следующем параметре, который в моем случае является thecruxapp.com. Кроме того, требуются session_key и api_key, поэтому в итоге код, который работал для меня, был

string logout_format = "http://www.facebook.com/logout.php?api_key={0}&session_key={1}&next={2}";
string access_token = HttpUtility.UrlDecode(fbClient.AccessToken);
char[] tokenSeparator = new char[] { '|' };
string session = access_token.Split(tokenSeparator)[1];

FacebookLoginBrowser.Navigate(new Uri(string.Format(logout_format, apiKey, HttpUtility.UrlEncode(session), HttpUtility.UrlEncode("http://thecruxapp.com"))));

Я не испытываю ошибку, которая была связана в другом ответе и не была связана - и выход из системы, и перенаправление происходят очень хорошо, если URL-адрес, передаваемый в следующий параметр, соответствует сайтуДомен введен в настройках приложения на Facebook.

0 голосов
/ 16 февраля 2012

У меня такая же проблема, нет веб-приложения в качестве бэкэнда для моего приложения WP7. я нашел это решение полезным http://claudiufarcas.blogspot.com/2011/06/wp7-webbrowser-caching-and-facebook.html, но внес некоторые изменения в код, так как с момента публикации произошли некоторые изменения в HTML-коде Facebook.

это работало на меня http://blog.jocelynenglund.com/?p=21

...