[iOS Facebook登录名升级到5后不起作用

问题描述 投票:1回答:1

我使用以下Pod将我的facebook SDK更新到最新版本(5)

pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'

这是我更新的Facebook登录功能

    let loginManager = LoginManager()
    loginManager.loginBehavior = .browser  //.native is not supported in new version

    loginManager.logIn(permissions: ["publicProfile", "userFriends", "email"], from: self) { (login, error) in
        if let e = error {
            self.showAlertForError(title: "", msg: e.localizedDescription)
            return
        }

        if let l = login {
            if l.declinedPermissions.contains("user_friends") || l.declinedPermissions.contains("email") {
                SVProgressHUD.dismiss()
                self.showAlertForError(title: "facebook_permission_required_text".localized(), msg: "facebook_permission_allow_text".localized())
                return
            }

            GraphRequest(graphPath: "/me", parameters: ["fields" : "id, email, first_name, last_name"])
                .start(completionHandler:  { (connection, result, error) in
                    guard let result = result as? NSDictionary,
                        let email = result["email"] as? String,
                        let first_name = result["first_name"] as? String,
                        let last_name = result["last_name"] as? String,
                        let user_id_fb = result["id"]  as? String else {
                            SVProgressHUD.dismiss()

                    }
                })

        }
    }

尝试登录时出现此错误。

Login error

ios swift facebook facebook-graph-api facebook-login
1个回答
0
投票
您仍然可以按照与现有iOS SDK相同的方式发送请求>

Graph API请求的当前方法将custom type-safe API用于请求。这使您可以更准确地推断graph API请求的类型,并提供clean API来使用此数据。

let connection = GraphRequestConnection() @IBAction private func loginWithReadPermissions() { let loginManager = LoginManager() loginManager.logIn( permissions: [.publicProfile, .userFriends, .email], viewController: self ) { result in self.loginManagerDidComplete(result) } } func loginManagerDidComplete(_ result: LoginResult) { switch result { case .cancelled: self.showAlertForError( title: "Login Cancelled", message: "User cancelled login." ) case .failed(let error): self.showAlertForError( title: "Login Fail", message: "Login failed with error \(error)" ) case .success(let grantedPermissions, _, _): self.showAlertForError( title: "Login Success", message: "Login succeeded with granted permissions: \(grantedPermissions)" ) connection.add(GraphRequest(graphPath: "/me", parameters: ["fields" : "id, email, first_name, last_name"])) { httpResponse, result, error in if error != nil { NSLog(error.debugDescription) return } guard let result = result as? NSDictionary, let email = result["email"] as? String, let first_name = result["first_name"] as? String, let last_name = result["last_name"] as? String, let user_id_fb = result["id"] as? String else { SVProgressHUD.dismiss() } } connection.start() } }

© www.soinside.com 2019 - 2024. All rights reserved.