Facebook用户名WPF

时间:2012-01-28 10:44:43

标签: wpf facebook facebook-c#-sdk

它非常简单的问题,我是新手,我无法理解这个问题,我正在尝试获取用户名并将其显示在标签中,当我尝试使用此代码获取访问令牌时输入条件: 它进入了事件(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;
            }
        }

1 个答案:

答案 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,然后交换访问令牌代码。