

dependencies: [
.package(url: "https://github.com/William-Weng/WWSignInWith3rd_Facebook.git", .upToNextMajor(from: "1.0.0"))
]
| 函式 |
功能 |
| canLaunching(_:didFinishLaunchingWithOptions:) |
启动设定 - application(_:didFinishLaunchingWithOptions:) |
| canOpenURL(_:sourceApplication:annotation:) |
OpenURL设定 - application(_:open:options:) |
| loginButton(with:delegate:permissions:) |
加入Facebook SignIn的原生按钮 |
| login(withPresenting:permissions:result:) |
使用facebook登入 + 取得使用者资讯 |
| login(from:permissions:result:) |
使用facebook登入 |
| logout() |
使用facebook登出 |
| userInfomation(graphPath:parameters:reault:) |
使用者资讯 |
| isLogin() |
登入状态 (没Token / Token过期) |
| accessToken() |
登入的状态 (有没有记录Token) |
| isExpired() |
Token有没有到期 |
import UIKit
import WWSignInWith3rd_Apple
import WWSignInWith3rd_Facebook
@main
final class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
return WWSignInWith3rd.Facebook.shared.canLaunching(application, didFinishLaunchingWithOptions: launchOptions)
}
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
let sourceApplication = options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String
let annotation = options[UIApplication.OpenURLOptionsKey.annotation]
return WWSignInWith3rd.Facebook.shared.canOpenURL(app, open: url, sourceApplication: sourceApplication, annotation: annotation)
}
}
import UIKit
import WWPrint
import WWSignInWith3rd_Apple
import WWSignInWith3rd_Facebook
final class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
/// 設定 <FacebookAppID> + <FacebookClientToken> + <FacebookDisplayName> + <FacebookScheme>
/// [開啟Keychain sharing功能](https://8085studio.wordpress.com/2015/08/29/ios筆記-使用keychain在app間共享資料/)
/// - Parameter sender: UIButton
@IBAction func signInWithFacebook(_ sender: UIButton) {
WWSignInWith3rd.Facebook.shared.login(withPresenting: self) { result in
switch result {
case .failure(let error): wwPrint(error)
case .success(let info): wwPrint(info)
}
}
}
}