请帮我登录Facebook
我从放入豆荚开始
pod 'FacebookCore'
pod 'FacebookLogin'
pod 'FacebookShare'
and then run pod install
Run Code Online (Sandbox Code Playgroud)
之后,我已经将其导入到我的viewController中
import UIKit
import FacebookCore
import FacebookLogin
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let loginButton = LoginButton(readPermissions: [ .publicProfile ])
loginButton.center = view.center
view.addSubview(loginButton)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Run Code Online (Sandbox Code Playgroud)
我用Facebook数据更新了info.plist
用户授权应用后,如何获取用户基本资料?AppDelegate文件中包含什么?
谢谢
小智 7
这是通过UIButton单击登录Facebook的代码。
第1步:将此代码复制到ur类文件中
import UIKit
import FBSDKShareKit
import FBSDKLoginKit
import FBSDKCoreKit
class Facebook_loginPageViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning(){
super.didReceiveMemoryWarning()
}
@IBAction func login(_ sender: Any) {
self.facebooklogin()
}
func facebooklogin() {
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.logIn(withReadPermissions: ["email"], handler: { (result, error) -> Void in
print("\n\n result: \(result)")
print("\n\n Error: \(error)")
if (error == nil) {
let fbloginresult : FBSDKLoginManagerLoginResult = result!
if(fbloginresult.isCancelled) {
//Show Cancel alert
} else if(fbloginresult.grantedPermissions.contains("email")) {
self.returnUserData()
//fbLoginManager.logOut()
}
}
})
}
func returnUserData() {
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"email,name"])
graphRequest.start(completionHandler: { (connection, result, error) -> Void in
if ((error) != nil) {
// Process error
print("\n\n Error: \(error)")
} else {
let resultDic = result as! NSDictionary
print("\n\n fetched user: \(result)")
if (resultDic.value(forKey:"name") != nil) {
let userName = resultDic.value(forKey:"name")! as! String as NSString?
print("\n User Name is: \(userName)")
}
if (resultDic.value(forKey:"email") != nil) {
let userEmail = resultDic.value(forKey:"email")! as! String as NSString?
print("\n User Email is: \(userEmail)")
}
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
步骤2:在AppDelegate添加Facebook ID
import UIKit
import FBSDKShareKit
import FBSDKLoginKit
import FBSDKCoreKit
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
let str_URL = url.absoluteString as NSString
if str_URL.contains("fb1111111111111111")// put you id here {
return FBSDKApplicationDelegate.sharedInstance().application(
app,
open: url as URL!,
sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String,
annotation: options[UIApplicationOpenURLOptionsKey.annotation])
}
return FBSDKApplicationDelegate.sharedInstance().application(
app,
open: url as URL!,
sourceApplication: options[UIApplicationOpenURLOptionsKey.sourceApplication] as! String,
annotation: options[UIApplicationOpenURLOptionsKey.annotation])
}
}
Run Code Online (Sandbox Code Playgroud)
步骤3:将此代码放入“ info.plist”
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb1111111111111111</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>2</string>
<key>FacebookAppID</key>
<string>1111111111111111</string>
<key>FacebookDisplayName</key>
<string>Together Deal</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10612 次 |
| 最近记录: |