如何在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主页,而不注销。
我如何做到这一点?
还要确保下一个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呢?看起来更干净了