美文网首页iOS知识点
iOS集成Facebook登录

iOS集成Facebook登录

作者: Cherry_06 | 来源:发表于2020-08-17 17:52 被阅读0次

如果你的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读取,例:

<key>CFBundleURLTypes</key>
<array>
  <dict>
  <key>CFBundleURLSchemes</key>
  <array>
    <string>fb你的FacebookAppID</string>
  </array>
  </dict>
</array>
<key>FacebookAppID</key>
<string>你的FacebookAppID</string>
<key>FacebookDisplayName</key>
<string>你的FacebookDisplayName</string>
  1. 还需要在info.plist配置facebook白名单,这样才可以打开facebook。
<key>LSApplicationQueriesSchemes</key>
<array>
  <string>fbapi</string>
  <string>fb-messenger-share-api</string>
  <string>fbauth2</string>
  <string>fbshareextension</string>
</array>
  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<UIApplicationOpenURLOptionsKey, id> *)options
{
  [[FBSDKApplicationDelegate sharedInstance] application:application
                                                 openURL:url
                                                 options:options];
  return YES;
}

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

#import <FBSDKCoreKit/FBSDKCoreKit.h>

@import FacebookCore;

@interface SceneDelegate ()

@end

@implementation SceneDelegate

- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)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登录

    本文链接:https://www.haomeiwen.com/subject/sqofjktx.html