iOS Facebook登录教程

时间:2013-09-01 03:48:01

标签: ios facebook facebook-graph-api facebook-sdk-3.0 acaccountstore

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

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

我把头发拉了出来。 FacebookSDK每隔几周就会发生变化。让这一切工作一劳永逸是神奇的。

2 个答案:

答案 0 :(得分:5)

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

  1. 帐户框架(ACAccount)
  2. 通过Facebook应用程序(如果已安装)
  3. 通过网络浏览器(旧方式)
  4. 我可以确认它在旧iOS版本中适用于我。如果您收到ACAccountStore不存在的错误,那么您做错了。来自文档:

      

    如果您之前没有登录,具体取决于您的iOS版本,   你会看到本机登录模式对话框,被重定向到   Facebook for iOS或者在Safari中重定向到Facebook来完成   认证流程。

    here。它们显示了不同iOS版本中的外观图片。

    有关完整教程,请参阅here

答案 1 :(得分: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];
       }
    }];