Facebook客户端流程是否仍然提供访问令牌?

时间:2011-06-23 06:22:09

标签: facebook sdk

我曾经能够创建一个WebBrowser控件,导航到登录URL(例如“http://www.facebook.com/dialog/oauth/?response_type=token&display=popup&scope=user_about_me&client_id = 179873125388138& redirect_uri = http%3a%2f%2fwww.facebook.com%2fconnect%2flogin_success.html“),然后使用下面的代码(来自Facebook-C#-SDK示例代码)捕获Navigated事件并提取访问令牌。然而,最近,它似乎只是重定向到RedirectURL,并没有附加访问令牌。 Facebook在2011年2月至6月期间如何处理授权流程是否有某种变化?也许这是一个IE9问题?

奇怪的是,我可以手动将常规IE9浏览器发送到同一个URL,并且访问令牌可以正常添加。只有当我以编程方式使用WebBrowser.Navigated事件执行此操作时,我才会看到该令牌。

谢谢,乔恩

    private void webBrowser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
    {
        FacebookOAuthResult oauthResult;
        if (FacebookOAuthResult.TryParse(e.Uri, out oauthResult))
        {
            this.FacebookOAuthResult = oauthResult;
            this.DialogResult = oauthResult.IsSuccess;
        }
        else
        {
            this.FacebookOAuthResult = null;
        }
    }

1 个答案:

答案 0 :(得分:0)

我很确定这是http://facebooksdk.codeplex.com/discussions/261528,这是Facebook行为变化与WPF WebBrowser控件问题之间的相互作用。通过切换到WinForms,我能够解决我的问题。该链接讨论了一种替代方法,该方法保留在WPF中但添加了对FacebookOAuthClient.ExchangeCodeForAccessToken()的调用。