iPhone SDK / Facebook Connect:使用自定义登录对话框

时间:2010-03-21 03:17:14

标签: iphone login facebook fbconnect

正如标题所说的那样。是否可以在原生iPhone应用程序中使用Facebook Connect(或任何其他FB集成方式),而无需借助内置登录对话框(看起来很糟糕)?我可以在哪里创建自己的自定义登录屏幕,询问facebook登录用户名和密码,然后使用fbconnect本机方法验证该信息并检索有效会话?

4 个答案:

答案 0 :(得分:3)

不要这样做。这违反了政策,您的应用程序将因此而关闭。像quixoto建议的那样,这是因为我们不希望培训用户在随机位置输入密码,并且因为用户没有根据我们的UX要求确认操作。我们目前正在重新设计这些对话框,以使它们更漂亮。

答案 1 :(得分:2)

当我查看Facebook Connect时,他们似乎对他们的API以及您可能想要制作的任何mod都非常严格。在facebook.com/x上没有提及定制界面,所以我认为你必须坚持他们批准的内容。

答案 2 :(得分:2)

是和否。

Facebook使用委托的身份验证让您的应用程序与之连接。因此,用户打算将他们的密码放入“受信任的”(例如Facebook登录页面)中,以便您的应用程序实际上看不到它,并且仅获得密钥。我们的想法是,用户受到培训,不会信任其他网页/应用程序的密码。

因此,FB在其FBConnect库中提供此Web弹出窗口,没有其他明确的方法将用户的凭据转换为会话。

那说,我会回答你的技术问题,因为这是一个合法的问题;您可以通过创建屏幕外UIWebView,托管该Web视图中的FB登录URL以及使用stringByEvaluatingJavaScriptFromString:将Javascript注入页面来执行您想要的操作。 Javascript可以使用用户名/密码,填写表单并提交,无需用户看到它。阅读FBConnect库代码以了解要使用的URL,以及如何处理提交页面的结果 - 您可以将其重新连接到库中。

执行此操作是(1)脆弱,因为您将不得不依赖ID和能够/将会改变的东西来破坏这些技术并且(2)可能违反FB Connect的使用条款,当然是(3) )一般来说,网络上的身份验证效果不佳,因为它并没有强调用户不应该信任第三方的密码。

毫无疑问,如果你单独行动并为用户提供更好看的身份验证体验,除了将他们带到Facebook之外,永远不要存储或使用他们的凭据做任何事情。

答案 3 :(得分:0)

如果登录对话框至少实际执行基本表单验证,那将是多么美妙的事情。您可以在不填写电子邮件地址或密码的情况下提交表单。伪劣,伪劣,用户界面工作。