我正在尝试编写一个简单的Facebook桌面应用程序(C#WPF)。程序应该显示的唯一内容是用户时间表。 我是.net Facebook sdk(v 6.0)的新手。我在sdk网站和Facebook开发者网站上都阅读了很多文档。到目前为止,一切都听起来很清楚我在整个登录过程中遇到了很大的问题。正如我在开发者网站上看到的,我需要获取用户访问令牌以获取用户的“私人”数据。正如在sdk站点上所描述的,获得这样一个令牌的唯一方法是使用正确的URI打开浏览器并从中恢复令牌。这真的是唯一的方法吗?我不想打开浏览器或类似的东西。有没有办法将用户名和密码发送到某种web服务或什么来获取令牌?有没有人知道如何在没有浏览器的情况下获得令牌?
亲切的问候 曼努埃尔
答案 0 :(得分:0)
无需打开浏览器。只需在表单中嵌入一个WebBrowser控件并将其置于不可见状态。
为Navigated事件添加处理程序:
webBrowser1.Navigated += new WebBrowserNavigatedEventHandler(webBrowser1_Navigated);
从服务器获得答案:
这段代码是在一年前完成的,我不知道他们是否更改了API,但它的工作正常。
void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
string Url = e.Url.AbsoluteUri.ToString();
if (Url.StartsWith("https://www.facebook.com/connect/login_success.html"))
{
if (Url.Contains("#") && Url.Contains("access_token="))
{
AccessToken = Url.Substring(Url.IndexOf("access_token=") + 13 , Url.Length - Url.IndexOf("access_token") -13);
if (AccessToken.Contains("&"))
{
AccessToken = AccessToken.Substring(0, AccessToken.LastIndexOf("&"));
}
}
}
}