Как получить URL выхода в Facebook C # SDK? - PullRequest
1 голос
/ 24 ноября 2011

Я пробовал это:

 public string GetLogoutUrl()
        {
            return String.Format("https://www.facebook.com/logout.php?next=http%3A%2F%2Fwww.google.com.br&access_token={0}", result.AccessToken);
        }

тогда:

webBrowser.Navigate(GetLogoutUrl());

Не сработало.Пользователь перенаправляется на домашнюю страницу Facebook и не выходит из системы.

как мне это сделать?Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 24 ноября 2011

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

next=http%3A%2F%2Fwww.google.com.br
1 голос
/ 25 ноября 2011

Я не знаком с FB. Может быть, этот код может работать для вас

StringBuilder sb = new StringBuilder();

HtmlElement form = webBrowser.Document.GetElementById("logout_form");
HtmlElementCollection inputs = form.GetElementsByTagName("input");
foreach (HtmlElement input in inputs)
{
    if (input.GetAttribute("name") != "")
    {
        sb.Append(input.GetAttribute("name") + "=" + input.GetAttribute("value") + "&");
    }
}
sb.Length--;


WebClient www = new WebClient();
www.Headers["Cookie"] = webBrowser.Document.Cookie;
www.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";
www.Headers["Content-Type"] = "application/x-www-form-urlencoded";
www.Headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
webBrowser.DocumentText = www.UploadString("http://www.facebook.com/logout.php/", sb.ToString());
1 голос
/ 24 ноября 2011

Домашняя страница здесь Я предполагаю, что это страница входа в Facebook.Если вы не вошли в систему, он перенаправит вас на страницу входа.

Если домашняя страница - это страница профиля, она перенаправит вас на домашнюю страницу, которая действительна, поскольку выход из Facebook является отправкой формы иВы не можете сделать это с помощью webBrowser.Navigate (url).

0 голосов
/ 28 ноября 2014

Почему бы вам просто не выдать POST через HttpWebRequest? кажется чище

...