用3快速登录Facebook

Joh*_*ood 1 ios8 swift3

请帮我登录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)