Get email and name Facebook SDK v4.4.0 Swift

前端 未结 10 2127
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-08 02:22

TL;TR: How do I get the email and name of a user that is logged in on my app using the facebook SDK 4.4

So far I have managed to get login working, now I can get the

10条回答
  •  遥遥无期
    2020-12-08 02:53

    In Swift 4.2 and Xcode 10.1

    @IBAction func onClickFBSign(_ sender: UIButton) {
    
        if let accessToken = AccessToken.current {
            // User is logged in, use 'accessToken' here.
            print(accessToken.userId!)
            print(accessToken.appId)
            print(accessToken.grantedPermissions!)
            print(accessToken.expirationDate)
    
            let request = GraphRequest(graphPath: "me", parameters: ["fields":"id,email,name,first_name,last_name,picture.type(large)"], accessToken: AccessToken.current, httpMethod: .GET, apiVersion: FacebookCore.GraphAPIVersion.defaultVersion)
            request.start { (response, result) in
                switch result {
                case .success(let value):
                    print(value.dictionaryValue!)
                case .failed(let error):
                    print(error)
                }
            }
    
            let storyboard = self.storyboard?.instantiateViewController(withIdentifier: "SVC") as! SecondViewController
            self.present(storyboard, animated: true, completion: nil)
        } else {
    
            let loginManager=LoginManager()
    
            loginManager.logIn(readPermissions: [ReadPermission.publicProfile, .email, .userFriends, .userBirthday], viewController : self) { loginResult in
                switch loginResult {
                case .failed(let error):
                    print(error)
                case .cancelled:
                    print("User cancelled login")
                case .success(let grantedPermissions, let declinedPermissions, let accessToken):
                    print("Logged in : \(grantedPermissions), \n \(declinedPermissions), \n \(accessToken.appId), \n \(accessToken.authenticationToken), \n \(accessToken.expirationDate), \n \(accessToken.userId!), \n \(accessToken.refreshDate), \n \(accessToken.grantedPermissions!)")
    
                    let request = GraphRequest(graphPath: "me", parameters: ["fields": "id, email, name, first_name, last_name, picture.type(large)"], accessToken: AccessToken.current, httpMethod: .GET, apiVersion: FacebookCore.GraphAPIVersion.defaultVersion)
                    request.start { (response, result) in
                        switch result {
                        case .success(let value):
                            print(value.dictionaryValue!)
                        case .failed(let error):
                            print(error)
                        }
                    }
    
                    let storyboard = self.storyboard?.instantiateViewController(withIdentifier: "SVC") as! SecondViewController
                    self.navigationController?.pushViewController(storyboard, animated: true)
    
                }
            }
        }
    
    }
    

    For complete details https://developers.facebook.com/docs/graph-api/reference/user

提交回复
热议问题