2011-06-23 155 views
0

我以前能够创建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问题?Facebook客户端流程是否仍然提供访问令牌?

奇怪的是,我可以手动发送一个常规的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; 
     } 
    } 
+0

听起来像http://stackoverflow.com/questions/6477231/facebook-connect-strange-issue –

+0

也http://stackoverflow.com/questions/6487261/wpf-webbrowser-detecting-redirects –

+0

怀疑这可能是http://facebooksdk.codeplex.com/discussions/261528 ...调查 –

回答

0

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

相关问题