我知道我见过一些应用程序让我使用 Facebook 登录,但从未向我显示授权屏幕。在我的一生中,我无法弄清楚如何使用 Windows Phone 7 做到这一点。我能得到的最好的方法是使用 Facebook for C# SDK 在 WebView 中获取授权屏幕。这看起来很可怕,页面甚至看起来都没有移动设备。
我到处寻找答案,但一无所获。想知道是否有人可以为我指明正确的方向以使其发挥作用?
我知道我见过一些应用程序让我使用 Facebook 登录,但从未向我显示授权屏幕。在我的一生中,我无法弄清楚如何使用 Windows Phone 7 做到这一点。我能得到的最好的方法是使用 Facebook for C# SDK 在 WebView 中获取授权屏幕。这看起来很可怕,页面甚至看起来都没有移动设备。
我到处寻找答案,但一无所获。想知道是否有人可以为我指明正确的方向以使其发挥作用?
是的,我也看到了这种应用程序(例如,Spotify 提示您输入您的 Facebook 帐户凭据,而不是使用正常的授权流程)。我最好的猜测是,他们要么是某种高级合作伙伴,并且可以访问某些私有 API,要么他们使用自定义授权流程(例如,当您在网站上授权应用程序时,系统会将授权密钥保存在数据库中。相同的应用程序 id/然后在 Windows Phone 应用程序中使用秘密,您需要做的就是输入您的电子邮件/用户名,以便系统找到之前保存的授权密钥)。
我也不喜欢使用 WebBrowser 控件显示 Facebook 登录/身份验证的方法(主要是因为 UI 不一致),但我想说在大多数情况下这仍然是要走的路(因为这是官方和推荐的方式授权应用程序和所有其他方法对我来说似乎很老套,也有它们的缺点)。
您将希望使用“服务器端身份验证”方法。以下文档描述了它的工作原理:服务器端身份验证(另请阅读OAuth 对话框文档以了解如何配置身份验证对话框)。您可以通过传递display
参数(到touch
或wap
)来更改 UI 的外观。
请注意,display=touch
目前在 Windows Phone 中已损坏 - Facebook 始终回退到wap
已弃用的位置,并将根据2012 年 7 月的更新将其删除(对应情况:Facebook API 不能与 Windows Phone 应用程序一起使用)。它也是 Facebook C# SDK 项目页面上的已知问题之一:Facebook C# SDK - 已知问题。
希望这能澄清一些事情。