iOS集成Facebook登录

如果你的app要进入国际市场,那么就少不了集成facebook登录,下面总结一下facebook登录的步骤。Don't forget前提条件是要翻墙啦

  1. 首先,需要在Facebook后台注册一个应用,当然,要先登录进后台。注册完成之后会得到APPID和dispalyname。

  2. 在Facebook网站设置开发环境,有可选项Swift Package Manager、Cocoapods、Carthage和FB SDK。可以根据自己的项目情况选择合适的一项进行配置。

  3. 在网站填写app里配置的Bundle ID。

  4. 在xcode项目中配置info.plist,其中sheme是为了从Facebook跳转回app,FacebookAppID和FacebookDisplayName供Facebook读取,例:

CFBundleURLTypes

  
  CFBundleURLSchemes
  
    fb你的FacebookAppID
  
  

FacebookAppID
你的FacebookAppID
FacebookDisplayName
你的FacebookDisplayName
  1. 还需要在info.plist配置facebook白名单,这样才可以打开facebook。
LSApplicationQueriesSchemes

  fbapi
  fb-messenger-share-api
  fbauth2
  fbshareextension

  1. 注册连接facebook,OC代码如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  
  [[FBSDKApplicationDelegate sharedInstance] application:application
                           didFinishLaunchingWithOptions:launchOptions];
  return YES;
}


- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(nonnull NSDictionary *)options
{
  [[FBSDKApplicationDelegate sharedInstance] application:application
                                                 openURL:url
                                                 options:options];
  return YES;
}

如果使用的是SceneDelegate,那么就用如下代码:

#import 

@import FacebookCore;

@interface SceneDelegate ()

@end

@implementation SceneDelegate

- (void)scene:(UIScene *)scene openURLContexts:(NSSet *)URLContexts
{
  UIOpenURLContext *context = URLContexts.allObjects.firstObject;
  [FBSDKApplicationDelegate.sharedInstance application:UIApplication.sharedApplication
                                               openURL:context.URL
                                     sourceApplication:context.options.sourceApplication
                                            annotation:context.options.annotation];
}
    
  1. 登录facebook。登录可以使用facebook原生的FBSDKLoginButton,也可以自定义button,这里说一下自定义button的action,例:
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
    [login logOut];
    [login logInWithPermissions:@[@"public_profile"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *_Nullable result, NSError *_Nullable error) {
        if (error) {
            NSLog(@"Process error");
        } else if (result.isCancelled) {
            NSLog(@"Cancelled: %@", error);
        } else {
            NSLog(@"Logged in");
        }
    }];

其中permissions参数还可填email等,看自己需要。

FBSDK的SDK可以从下面地址下载:https://github.com/facebook/facebook-ios-sdk/releases/tag/v9.2.0

你可能感兴趣的:(iOS集成Facebook登录)