我在使用Facebook SDK .net
的Windows Phone 7应用中遇到身份验证问题这是认证部分
var facebookClient = new FacebookClient();
facebookClient.AppId = FacebookAppId;
facebookClient.AppSecret = FacebookSecret;
var authUrl = facebookClient.GetLoginUrl(new
{
client_id = FacebookAppId,
client_secret = FacebookSecret,
scope = "publish_stream",
response_type = "token",
display = "touch",
redirect_uri = "https://www.facebook.com/connect/login_success.html"
});
browser.Navigate(authUrl);
因此,浏览器屏幕似乎工作正常,登录屏幕显示,然后权限屏幕显示。当我在最后一个权限屏幕上按OK时,我只得到一个白色屏幕。事实上,我现在已经盯着这个白色屏幕持续了10分钟。
有什么想法吗?
这是Browser.Navigated事件处理程序。我已经评论了我放置断点的地方
async void browser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
FacebookOAuthResult result;
var facebookClient = new FacebookClient(); // Put break point here to make sure the event is handled
if(facebookClient.TryParseOAuthCallbackUrl(e.Uri, out result))
{
if (result.IsSuccess) // Put break point here to check result but its never reached
{
Logging.WriteLine("Authentication was a success!");
Classes.Facebook.Instance.AccessToken = result.AccessToken;
CreateFacebookPost();
}
else
{
MessageBox.Show(string.Format("Error: {0}\nReason:{1}", result.ErrorDescription, result.ErrorReason), "Authentication Error", MessageBoxButton.OK);
Logging.WriteLine("Authentication Failed");
Logging.WriteLine(string.Format("Error: {0}\nReason:{1}", result.ErrorDescription, result.ErrorReason));
}
browser.Visibility = System.Windows.Visibility.Collapsed;
browser.Navigated -= browser_Navigated;
}
}
编辑1: 更多信息。我知道身份验证(来自Facebook的视图)是成功的,因为我现在可以在我的Facebook上看到该应用程序。此外,如果我再次按下手机以转到应用程序的上一个屏幕,然后返回到Facebook部分,它会显示一切正常,我可以发帖。
编辑2: 使用非常相似的代码,这在Windows Phone 8应用程序中工作正常。我比较了2并没有看到任何差异。
答案 0 :(得分:0)
看起来我找到了解决方案。您必须在IsScriptedEnabled=True
控件上设置WebBrowser
。默认情况下,它是错误的。