我正在尝试使用 Windows Phone 8 上的 Facebook C# SDK 对 Facebook 上的用户进行身份验证。为此,我遵循此处的代码:FacebookLoginPage.xaml.cs
但我面临的问题是,每当我在打开的对话框中输入用户名和密码以验证用户身份时,我只会看到以下页面:
在此之后,我的程序不会重定向到作为单独 View 的着陆页。我看到的其他建议 Conceal WebView 的解决方案不适用,因为身份验证被抽象为单个 LoginAsync 函数调用。 有什么建议吗?
最佳答案
当 FB 检测到 Windows Phone 网络浏览器控件时,它似乎对其重定向脚本进行了一些更改。
C# SDK 所做的是将登录页面生成为“http://www.facebook.com ....”。当您在网络浏览器控件上打开此 URL 时,它会被重定向到“http://m.facebook.com ...”,这会显示 FB 登录页面的移动版本。
这以前没有问题,但最近,当 FB 进行重定向时,它还会从 URL 中删除参数“display=page”。然后发生的事情是,当成功登录 FB 时,将打开没有此参数的“login_success.html”页面。如果不传入“display=page”参数,则默认为“display=touch”。不幸的是,该 URL 没有在 URL 中附加 token 字符串,因此显示了第一个线程中显示的页面。
解决方法是,不使用下面的代码生成登录 URL,而是将其修改为
原创:
Browser.Navigate(_fb.GetLoginUrl(parameters));
修正:
var URI = _fb.GetLoginUrl(parameters).toString().replace("www.facebook.com","m.facebook.com");
Browser.Navigate(new Uri(URI));
关于c# - WP8 - Facebook 登录问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18782579/