iOS Facebook快速登录

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

我正在尝试实现文档中提到的完全相同的代码,因此当我以下面的方式从用户那里获得授予的权限时

let loginManager = LoginManager()
    loginManager.logIn(
        permissions: [.email , .publicProfile],
        viewController: self
    ) { result in
        self.loginManagerDidComplete(result)
    }

我如何解码publicProfile以获取所有内部信息。

我知道还有其他方法可以获取这些详细信息,但是我只能用此代码获得解决方案。

我们能否从下面的代码中获取详细信息

switch result {
    case .cancelled:
        print("User cancelled login.")

    case .failed(let error):
        print("Login failed with error \(error)")

    case .success(let grantedPermissions, _, _):
        print("Login succeeded with granted permissions: \(grantedPermissions)")
        print(grantedPermissions.map { $0.name },"test")
        for perm in grantedPermissions {
            print(perm.name,perm.hashValue)
        }
    }
ios swift xcode facebook facebook-login
1个回答
0
投票
在您的登录权限的完成处理程序中,进行图形请求以获取配置文件信息。您的登录功能仅要求许可,随后的调用将返回您所需的信息。

switch result { case .failed(let error): print(error) case .cancelled: print("Cancelled") case .success(_,_,_): let params = ["fields" : "id, email, first_name, last_name"] let graphRequest = GraphRequest(graphPath: "/me", parameters: params) graphRequest.start(completionHandler: { ( connection, result, error) in if let error = error as Error? { print(error.localizedDescription) } if let result = result as? [String: String], let id = result["id"], let firstName = result["first_name"], let lastName = result["last_name"], let email = result["email"] }) }

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