它非常简单的问题,我是新手,我无法理解这个问题,我正在尝试获取用户名并将其显示在标签中,当我尝试使用此代码获取访问令牌时输入条件:
它进入了事件(browser_navigated
)而不是条件,任何人都知道这个问题是什么?
private void webBrowser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
FacebookOAuthResult result;
if (FacebookOAuthResult.TryParse(e.Uri, out result))
{
if (result.IsSuccess)
{
var accesstoken = result.AccessToken;
}
else
{
var errorDescription = result.ErrorDescription;
var errorReason = result.ErrorReason;
}
}
答案 0 :(得分:2)
wpf浏览器控件中存在一个令人讨厌的错误,它忽略#之后的所有内容。 (这仅适用于基于wpf的Web浏览器控件,因此它也存在于silverlight和wp7 Web浏览器控件中。)
Facebook将访问令牌作为url片段的一部分返回。
https://url.com#access_token=....
由于该错误,当您将e.Uri
作为参数传递时,它不会#access_token=..
,因此fb c#sdk认为它不是有效的oauth回调网址,因此始终TryParse
返回false。
<强>解决方案:强>
使用winforms浏览器控件进行登录或将response_type
设置为code token
,然后交换访问令牌代码。