如何在Facebook c# SDK中获取登出url

本文关键字:获取 url SDK Facebook | 更新日期: 2023-09-27 18:15:34

我试过了:

 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主页,而不注销。

我如何做到这一点?

如何在Facebook c# SDK中获取登出url

还要确保下一个url属于fb应用程序设置中指定的站点url。

next=http%3A%2F%2Fwww.google.com.br

这里我假设它是facebook的登录页面。如果您没有登录,那么它会将您重定向到登录页面。

如果主页是个人资料页面,那么它会重定向到主页,这是有效的,因为facebook的注销是一个表单提交,你不能使用webBrowser.Navigate(url)。

我不熟悉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());

为什么不通过HttpWebRequest发出POST呢?看起来更干净了