2

如何将 Facebook 登录集成到 iOS 应用程序中,适用于所有版本?

在没有完整解决方案的情况下,我连续数小时搜索了 Google 和 GitHub。我还阅读了 Facebook 上的所有文档并剖析了 ios-facebook 示例代码。我有 >=iOS6 的工作版本,但低于该版本的任何内容都会崩溃(ACAccountStore 不存在)。目前我正在使用一个名为 LBFacebook 的库来登录。唯一的缺点是,它再次不适用于 iOS5。

我正在拔头发。FacebookSDK 每两周更换一次。让它一劳永逸地工作将是奇迹。

4

2 回答 2

5

Facebook SDK 3.1 向后兼容。它尝试按以下顺序进行身份验证:

  1. 帐户框架 (ACAccount)
  2. 通过 Facebook 应用程序(如果已安装)
  3. 通过网络浏览器(旧方式)

我可以确认它在旧 iOS 版本中对我来说可以正常工作。如果您收到 ACAccountStore 不存在的错误,则说明您做错了。从文档中:

如果您之前没有登录过,根据您的 iOS 版本,您将看到本机登录模式对话框,重定向到 iOS 版 Facebook 或重定向到 Safari 中的 Facebook 以完成身份验证流程。

这里。他们展示了它在不同 iOS 版本中的样子。

有关完整的教程,请参见此处

于 2013-09-01T07:01:13.243 回答
2
 NSString *strName= @"Mohit Thatai";
   FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
   [login
    logInWithReadPermissions: @[@"public_profile", @"email"]
    handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
       if (error)
       {
          NSLog(@"Error");
       }
       else if (result.isCancelled)
       {
          NSLog(@"Cancell");
       }
       else
       {
     NSLog(@"Login Sucessfull");
// Share link text on face book
         FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
          [content setContentTitle:@"GPS Tracker"];
          [content setContentDescription:[NSString stringWithFormat:@"%@ shared an interesting link\n       This might be interesting to you: GPS Tracker for Kids",strName]];
 content.contentURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://gpsphonetrackerkids.com"]];
          [FBSDKShareDialog showFromViewController:self
                                       withContent:content
                                          delegate:nil];
       }
    }];
于 2015-09-04T07:03:02.490 回答