Facebook登录-Facebook身份验证和Cocoapods

使用他们的iOS SDK和Cocoapods创建一个新的应用程序facebook登录名和一个facebook用户身份验证。 以下是我们将遵循的步骤:

来自Facebook的iOS SDK文档的第一本入门指南

创建一个新的iOS项目Swift

转到设置后,打开facebook开发者帐户并创建新的应用程序,然后单击基本->添加平台ios

https://developers.facebook.com/docs/ios/getting-started

https://developers.facebook.com/

然后将Bundle ID添加到您的ios项目(例如com.xxxx),使用Bundle ID配置Facebook

然后继续下载ios的facebook sdk,否则,请明智地将pod文件安装到您的项目中。

继续打开终端,然后继续您的项目文件夹。

得到了创建podfile-> pod init

打开podfile->打开podfile

粘贴-> pod’FBSDKCoreKit’
吊舱“ FBSDKShareKit”
pod’FBSDKLoginKit’pod文件并保存

然后去终端或安装podfiles-> pod Install

喜欢

启用Facebook的身份验证机制

为了使您的应用程序与Facebook的身份验证机制良好配合,您需要根据facebook身份验证来编辑.plist文件。 继续,并将占位符字符串替换为您的Facebook应用ID和应用名称:

  1. 在Xcode中,右键单击项目的Info.plist文件,然后选择Open As-> Source Code。
  2. 在最终元素之前,将以下XML代码段插入文件正文中。
  3. 将{your-app-id}和{your-app-name}替换为在Facebook App仪表板上找到的应用程序的ID和名称。

Swift 3 AppDelegate配置

转到前一个swift项目-AppDelegate.swift文件。

接下来,在launchOptions中使用FBSDKApplicationDelegate

import UIKit 
import FBSDKCoreKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let handled = FBSDKApplicationDelegate.sharedInstance().application(app, open: url, sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String!, annotation: options[UIApplicationOpenURLOptionsKey.annotation]) return handled
}
//...
}

集成FBSDKLoginButton

打开ViewController.swift并进行以下源代码编辑

 import UIKit 
import FSocialLogin
class ViewController: UIViewController, FBSDKLoginButtonDelegate { override func viewDidLoad() {
super.viewDidLoad()
let loginButton = FBSDKLoginButton()
view.addSubview(loginButton)
//frame's are obselete, please use constraints instead because its 2016 after all loginButton.frame = CGRect(x: 16, y: 50, width: view.frame.width - 32, height: 50)
loginButton.delegate = self
}
}

您将能够授予您的iOS应用程序有关此用户的权限:

为了验证身份验证是否成功,您应该实现以下委托方法,然后设置按钮委托:

 class ViewController: UIViewController, FBSDKLoginButtonDelegate { override func viewDidLoad() { 
//... loginButton.delegate = self
}
func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) { print("Did log out of facebook")
}
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!)
{
if error != nil {
print(error) return
}
print("Successfully logged in with facebook...")
}
}

如果您的Facebook没有显示“注销”标签,则说明身份验证大多不成功。 要解决此问题,请在Xcode的应用程序设置中启用“钥匙串共享”:

运行您的应用程序,然后再次执行“登录身份验证”。 现在,您的按钮“注销”标签为:

Facebook登录-Facebook身份验证和Cocoapods

Interesting Posts