我自己遇到了这个问题,并进行了一些挖掘以找到问题的根源。问题似乎源于 Facebook 方面的一些未知(无论如何对我而言)更改,以前身份验证响应 URL 的形式为
https://www.facebook.com/connect/login_success.html#access_token= ...
由于某种原因,它现在从登录流程中返回为
https://www.facebook.com/connect/login_success.html#?access_token= ...
FacebookSDK.NET 中的代码在LoginPage.xaml.cs的第 104 行与一个简单的 Uri 相等测试进行了比较
if (e.Uri == WebAuthenticationBroker.EndUri)
当问号出现在中间时,它无法返回 true。我希望 Facebook 最终会纠正这个问题,只是因为太多的东西中断了,但与此同时,一个非常干净的解决方法是从 GIT 而不是 NuGet 获取 FacebookClient 源并将比较更改为这个
UriBuilder clean = new UriBuilder(e.Uri);
clean.Query = "";
if (clean.Uri == WebAuthenticationBroker.EndUri)
然后代码将运行得很好,但这似乎最终是 Facebook 在查看其开发人员网站上的文档时的错误。
我希望这对其他人有所帮助,我注册 Stackoverflow 只是为了发表这篇文章。:)