【问题标题】:Windows Phone 8 Facebook AuthenticationWindows Phone 8 Facebook 身份验证
【发布时间】:2013-10-24 21:38:36
【问题描述】:

我正在开发适用于 Windows Phone 8 的应用程序,我希望用户可以使用他们的 Facebook 帐户登录,这样他们就不必在我的应用程序上创建帐户。

我看到了适用于 .NET 的 Facebook SDK 并决定使用它,因为它看起来非常高效和流行。

作为初学者,我按照 SDK 文档中的教程进行操作:http://facebooksdk.net/docs/phone/tutorial/

我在教程中做了完全相同的事情,自从我登录后一切正常。我单击登录按钮,我被重定向到教程中他们称之为“FacebookLoginPage”的内容(一个带有空网格的 .xaml,以便网络浏览器可以放入其中),然后出现带有 Facebook 页面的网络浏览器,我可以输入我的登录名和密码。之后,我被重定向到请求我的 Facebook 帐户权限的页面,我单击“确定”。到目前为止一切都很好。

然后是我的问题。我应该被重定向到他们在教程中所谓的“LandingPage”,而不是我被重定向到显示“成功”和安全警告的 facebook“login_success”(https://www.facebook.com/connect/login_success.html‎),然后什么也没有不再发生......

我认为我的代码中有问题,所以我花了几个小时来处理它,但没有找到任何东西。所以我尝试运行他们在网站文档中提供的示例应用程序,我只是修改了其中的 Facebook AppID(我已经放了我的),同样的事情发生了。 我还尝试了我在诺基亚开发者 Wiki 上找到的其他东西。

所以我认为我的 Facebook 应用程序有问题,但我找不到它是什么... 有人可以给我一些帮助吗?我要死在这里:(

我提前为我的英语错误道歉,祝你有个美好的一天!

更新:我终于按照本教程完成了http://developer.nokia.com/Community/Wiki/Integrate_Facebook_to_Your_Windows_Phone_Application

【问题讨论】:

  • 无代码 - 无答案... 您的选择:发布一小段不起作用的代码示例,找到可以坐在您旁边并提供帮助的人,放弃或尝​​试其他示例。
  • “我做了与教程中完全相同的事情”“所以我尝试运行他们在网站文档中提供的示例应用程序”在这种情况下发布代码有什么意义?你不想回答我,不代表其他人不会。实际上,我在下面有我的答案......
  • 需要内联示例代码才能在 SO 上发布一个好问题 - 如果您链接的网站更改代码并且您的帖子不再对其他人有用怎么办?旁注:如果您在答案中得到很好的提示,您至少应该投票,如果它确实回答了您的问题 - 将其标记为答案。
  • 我不能投票,因为我在 StackOverflow 上没有足够的“声誉”。
  • (我认为您总是可以对自己的问题的答案投票赞成......这显然不是真的:()

标签: c# facebook login windows-phone-8


【解决方案1】:

重定向到“https://www.facebook.com/connect/login_success.html‎”应该包含 accessToken 作为 url 参数,因此如果您允许导航到此 url,它确实存在安全风险,因为它会暴露 AccessToken。您需要从 WebBrowser 控件中侦听“导航”事件,如果浏览器正在导航到“https://www.facebook.com/connect/login_success.html‎”,那么您需要取消导航并从 url 参数中获取 AccessToken。

更新: 看起来 FB 将他们的 OAuth 登录响应从 ...login_success.html#access_token= 更改为 ...login_success.html?#access_token= 现在有一个“?” “#”字符之前的字符。

【讨论】:

  • 我认为 Facebook SDK for .NET 应该自己做。我做了他们在文档中所说的完全相同的事情......
  • 我认为 facebook SDK 是由第三方编写的,所以如果 Facebook 做出更改,如 Matt 上面所说,那么 SDK 很容易损坏。我为访问云服务做了很多编码,因此我总是使用 http rest api。
  • 好的,我明白了。你有什么我可以遵循的教程吗?这对我来说是新的!
  • 哇,我刚刚运行了一些测试代码,除非我发疯(这是可能的),否则 FB 似乎将他们的 OAuth 登录响应从 ...login_success.html#access_token= 更改为...login_success.html?#access_token= 现在有一个“?” “#”字符之前的字符。这可以解释为什么您使用的库没有正确解析访问令牌。
  • 哦,是的,这很有道理。我会等几天然后重试。谢谢乔恩!
【解决方案2】:

我正在使用 Facebook SDK .NET for WindowsPhone 的 LoginButton 控件,但遇到了同样的问题。

我修复它,从 github Facebook-WinClient-Sdk 下载项目并更改 FacebookSessionClient 类的第 186 行,为此:

Uri endUri = new Uri("https://m.facebook.com/connect/login_success.html?#access_token");

.net 的 facebook sdk 团队肯定会解决这个问题,但我今天有一个演示,需要它工作!

【讨论】:

  • 你帮了我很多,但我仍然有麻烦!我将“facebook.com/connect/login_success.html”更改为“m.facebook.com/connect/login_success.html?#access_token”,但没有改变。之后我还在parameters["redirect_uri"] = "https://www.facebook.com/connect/login_success.html"; 中更改了它之后,我可以登录但我有一个错误,说我提供的 URL 没有得到应用程序配置的授权。有什么想法吗?
  • 啊,这支持了我昨天发现的关于 OAuth 重定向更改的内容(在我对此 tiopic 的回答的 cmets 中列出)。 FB 文档仍然显示旧的 OAuth 重定向,所以这一定是他们的错误,所以我假设他们会在意识到错误时将其改回。
【解决方案3】:

我最近在商店的很多应用程序中都看到了这一点,因此可能不是您做错了什么,而是 Facebook 的更改尚未反映在 SDK 中。

您是否尝试过改用 Windows Azure 移动服务身份验证?

有关更多信息,请参阅http://www.windowsazure.com/en-us/develop/mobile/how-to-guides/register-for-facebook-authentication/http://www.windowsazure.com/en-us/develop/mobile/how-to-guides/register-for-facebook-authentication/ 上的指南。

【讨论】:

  • 不,我没有尝试 Windows Azure 移动服务身份验证,我会看看。谢谢你的信息!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2015-07-17
  • 1970-01-01
相关资源
最近更新 更多