iOS接入Facebook第三方登錄
開(kāi)發(fā)語(yǔ)言:Swift
官方文檔
第一步 設(shè)置開(kāi)發(fā)環(huán)境
-
按照官方文檔指引,創(chuàng)建應(yīng)用
接入Facebook SDK
SDK接入可以選擇cocoapods或者直接下載
第二步 配置info.plist
- 完成
info.plist
列表配置裤纹,info.plist
作為源碼打開(kāi)授翻,復(fù)制以下代碼
// 000000000為自己應(yīng)用的FacebookAppID與URL Schemes
//在官方文檔內(nèi)可生成
<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb000000000</string> </array> </dict> </array> <key>FacebookAppID</key> <string>000000000</string> <key>FacebookDisplayName</key> <string>tblogindemo</string>
- 如要使用任何 Facebook 對(duì)話框(例如,登錄、分享、應(yīng)用邀請(qǐng)等),以便從您的應(yīng)用切換至 Facebook 應(yīng)用遥缕,則您應(yīng)用程序的 info.plist 還必須包含以下代碼
<key>LSApplicationQueriesSchemes</key> <array> <string>fbapi</string> <string>fb-messenger-share-api</string> <string>fbauth2</string> <string>fbshareextension</string> </array>
第三步 連接應(yīng)用委托
- 在AppDelegate中添加代碼,啟動(dòng)時(shí)初始化 SDK宵呛,并在您執(zhí)行登錄或分享操作時(shí)单匣,讓 SDK 處理通過(guò)原生 Facebook 應(yīng)用獲得的結(jié)果。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
return true
}
//以下方法只支持iOS 9以上
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
let handled = ApplicationDelegate.shared.application(app, open: url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplication.OpenURLOptionsKey.annotation])
return handled
}
第四步 實(shí)現(xiàn)功能
- 添加Facebook登錄功能
override func viewDidLoad() {
let loginBtn = FBLoginButton(type: .roundedRect)
loginBtn.center = view.center
view.addSubview(loginBtn)
}
-
檢驗(yàn)是否成功接入
點(diǎn)擊login按鈕能轉(zhuǎn)跳至Facebook授權(quán)后能返回應(yīng)用
- 如果你的按鈕變成了logout宝穗,那就說(shuō)明已經(jīng)登錄成功了
進(jìn)階
- 單純登錄肯定是不夠了户秤,我這里會(huì)把用戶的頭像以及信息顯示出來(lái)
- 頭像顯示可以用Facebook封裝好的控件
FBProfilePictureView
,將FBProfilePictureView
的profileID設(shè)置為userID即可
Profile.loadCurrentProfile { (currentProfile, error) in
guard let profile = currentProfile else { return }
let userid = profile.userID
let name = profile.name
self.profilePictureView.profileID = userid
self.userDatailsLabel.text = name
}
通過(guò)Profile可以獲取用戶信息逮矛,包括userID鸡号、firstName、middleName须鼎、lastName鲸伴、name
添加測(cè)試賬號(hào)
-
為你的應(yīng)用添加管理員、開(kāi)發(fā)者晋控、測(cè)試者
我的應(yīng)用----用戶身份----添加用戶
項(xiàng)目demo
因?yàn)檫@個(gè)demo只是用于了解Facebook登錄将饺,并沒(méi)有上線厚骗,所以請(qǐng)大家將FacebookAppID等修改為自己項(xiàng)目的編號(hào)施籍,否則是不可以進(jìn)行授權(quán)登錄的
參考
iOS集成facebook實(shí)現(xiàn)自動(dòng)登錄
尊重原創(chuàng)濒析,轉(zhuǎn)載請(qǐng)注明出處,謝謝!
未經(jīng)授權(quán)禁止轉(zhuǎn)載裹唆!