使用新的“Facebook SDK for iOS”与旧的“Facebook iPhone SDK”进行Facebook身份validation
我正在整合Facebook与我的iPhone / iOS应用程序,我想知道我是否正确理解login过程的性质。
使用旧的Facebook SDK('Facebook iPhone SDK'),当我们需要从用户请求authentication权限时,UIWebView将以login提示显示。 使用新的SDK('Facebook SDK for iOS'),SDK使用Apple的快速应用程序切换function临时将应用程序置于后台模式,然后加载iOS Facebook应用程序或Safari进行身份validation。 这基本上是它的要点吗?
我已经尝试通过新的SDK技术validation我的应用程序,由于我的应用程序的性质,它只是不能支持后台。 这是否意味着我必须使用旧的SDK来启动基于UIWebView的身份validation? 无论如何,我认为这个实现是非常清晰的。 我会遇到这样做的主要缺点吗?
我不相信这是事实。
我知道的Facebook SDK,可以在https://github.com/facebook/facebook-ios-sdk上find,不会像你所描述的那样。 这是你使用的SDK吗? 我相信从“旧”的facebook SDK这个SDK的最后一个重大更新是增加对OAuth风格的authentication的支持。 随着这一变化,他们破坏了代码的兼容性,所以应用程序被迫进行更改以合并最新的SDK。
当您在此SDK中调用“授权”时,您将传递应用程序标识,期望的权限以及callback委托,以通知错误或成功(login,未login,注销)。 您还可以设置您可能从前一个会话持续存取的任何访问令牌。 Facebookvalidation此访问令牌,如果它不存在或无效,它将呈现一个模式login对话框。 我相信这个对话框的内容是一个网页。 SDK使用OAuth对用户进行身份validation,并使身份validation令牌在会话之间持续存在。
在任何时候,应用程序退出运行Facebook应用程序或Safari。 我很好奇 – 是什么让你相信这是事实? (或者,也许还有其他一些SDK,我不知道?)
看看这个问题和我的答案: Iphone的Facebook连接示例调用Safari浏览器。 我不想用safari
您可以使其始终使用UIWebView
。 Facebook试图做到这一点,用户只需要每个设备login一次(通过Facebook应用程序或Safari),但我不喜欢这个stream量(特别是在iPad上)。 虽然我宁愿不用Facebook的代码,但是我发现有几条评论是为了让旧的行为恢复正常。
看看这个页面: https : //github.com/facebook/facebook-ios-sdk
并看看单点login 。 这就描述了快速切换的上述情况。
- 在LSApplicationQueriesSchemes下的Info.plist中缺lessfbauth2,并且是iOS 9.0所必需的
- FBSDKAppInvite成功,但不能在fbaccount中发送通知
- iOS:将Facebook Likebutton添加到本机iPhone应用程序
- UIWebView显示本地图像和Facebook评论
- 无法从iOS应用上传大video到Facebook
- 如何在startWithGraphPath Facebook iOS中标记好友
- Facebook SDK 4.7loginerror handling
- parsing和Facebooklogin和注册返回“用户已取消login”(iOS 8.1 + Swift 1.2)
- iOS中的链接器错误(体系结构x86_64的重复符号)