如何实现iOS的Facebook原生登录?

时间:2014-05-12 10:07:02

标签: ios facebook oauth

为我的应用支持Facebook登录的最佳做法是什么?

我正在考虑现有的集成应用程序与Facebook。 以Pinterest为例,该应用程序即使没有在设备上安装Facebook应用程序也使用iOS本机登录。我也想实现这样的逻辑流程。

看着:

Get if my app is authorized to use facebook [iOS 6, FB SDK 3.2]

https://developers.facebook.com/docs/ios/

https://developer.apple.com/documentation/social/slcomposeviewcontroller

https://developer.apple.com/documentation/accounts

我不清楚如何实施回退流程,应用程序执行以下操作:

如果可以登录设备,请使用它。如果没有,回退到Facebook应用登录,如果不回退到Facebook Safari登录。

3 个答案:

答案 0 :(得分:5)

您可以在打开会话时执行此身份验证,如下所示。此枚举FBSessionLoginBehaviorUseSystemAccountIfPresent将执行如下步骤

  1. 尝试在设置应用中访问Facebook帐户
  2. 如果失败#1,如果安装了Facebook原生应用程序,请转到快速应用程序切换
  3. 如果在#2中失败,它将切换到safari。

    [FBSession.activeSession openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { //your code. }];

  4. 枚举常量清楚地解释登录流程,我们可以根据需要选择任何一个。

      

    @discussion Facebook登录授权应用程序执行操作   代表用户,使用用户的Facebook帐户。通常是   Facebook登录将依赖于外部维护的帐户   应用程序,由本机Facebook应用程序,浏览器或   也许是设备本身。这避免了用户进入的需要   他们的用户名和密码直接,并提供最安全的   和用户授权应用程序的最低摩擦方式   与Facebook互动。如果无法进行Facebook登录,请执行以下操作:   可以尝试后退Facebook登录,提示用户   在由。直接托管的Web视图中输入其凭据   应用

         

    FBSessionLoginBehavior枚举指定是否允许   回退,禁止回退或强制回退登录行为。最   应用程序将使用默认值,尝试正常的Facebook   登录,只有在需要时才会退回。在极少数情况下,它可能是   最好不要完全拒绝Facebook登录,或者   强制退回登录。 * /

    typedef enum {
        /*! Attempt Facebook Login, ask user for credentials if necessary */
        FBSessionLoginBehaviorWithFallbackToWebView      = 0,
        /*! Attempt Facebook Login, no direct request for credentials will be made */
        FBSessionLoginBehaviorWithNoFallbackToWebView    = 1,
        /*! Only attempt WebView Login; ask user for credentials */
        FBSessionLoginBehaviorForcingWebView             = 2,
        /*! Attempt Facebook Login, prefering system account and falling back to fast app switch if necessary */
        FBSessionLoginBehaviorUseSystemAccountIfPresent  = 3,
    } FBSessionLoginBehavior;
    

    注意:检查文档以了解如何使用FB应用切换应用。然后只有这个枚举才会按预期工作。

答案 1 :(得分:0)

Facebook SDK用于自动执行此操作,但已停止。有关如何使用本机操作系统组件登录Facebook,请参阅this answer

答案 2 :(得分:-2)

当您将Facebook与本机Facebook应用程序集成时,无需实现登录屏幕。为此,您应该在iOS设备中登录facebook应用程序,只需转到

即可

设置 - >实