C# 捕获HTTP 307重定向URL

C# 捕获HTTP 307重定向URL,c#,facebook,facebook-graph-api,oauth,C#,Facebook,Facebook Graph Api,Oauth,我正在调用Facebook API,并试图从响应中捕获访问令牌 当我调用以下URL时: https://www.facebook.com/dialog/oauth?client_id={client_id}&display=popup&redirect_uri=http://www.facebook.com/connect/login_success.html&response_type=token 如果我已经登录,我会得到一个指向URL的简短重定向,该URL显示访问令

我正在调用Facebook API,并试图从响应中捕获访问令牌

当我调用以下URL时:

https://www.facebook.com/dialog/oauth?client_id={client_id}&display=popup&redirect_uri=http://www.facebook.com/connect/login_success.html&response_type=token
如果我已经登录,我会得到一个指向URL的简短重定向,该URL显示访问令牌,或者在我的浏览器中显示FB登录表单:

https://www.facebook.com/connect/login_success.html#access_token={access_token}&expires_in={time}
上述URL仅显示一秒钟或两秒钟,然后最终被重定向到:

https://www.facebook.com/connect/blank.html#_=_
我的问题是,如何在第二个URL中捕获访问令牌

我一直在尝试通过以下方法捕获URL:

private void FBBrowser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e) {
    String urlResponse = e.Uri.ToString();
    Console.WriteLine("FB URL Response: " + urlResponse);
}
问题在于,侦听器拾取的URL是我呼叫的第一个URL,而不是我要的响应URL。

(请注意,出于安全目的,我已从URL中删除访问令牌和客户端id)


附加说明-在浏览器中检查请求序列后,我注意到第一个响应是HTTP 302,然后是HTTP 307。307响应的位置头是我需要使用C#解析的,因为它包含访问令牌。

使用WPF Web浏览器控件时,在“#”符号后捕获字符似乎有问题。这对访问令牌造成了问题,因为它们在URL中返回的方式如下:

#access_token='token_code'&expires_in='time'
本博客介绍了使用System.Windows.Controls.WebBrowser替代的解决方法。通过采用这种技术,我最终能够从URL解析访问令牌

我希望这能帮助其他可能遇到类似问题的人