Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS Facebook登录swift_Ios_Swift_Xcode_Facebook_Facebook Login - Fatal编程技术网

iOS Facebook登录swift

iOS Facebook登录swift,ios,swift,xcode,facebook,facebook-login,Ios,Swift,Xcode,Facebook,Facebook Login,我试图实现文档中提到的完全相同的代码,因此当我通过以下方式从用户处获得授权权限时 let loginManager = LoginManager() loginManager.logIn( permissions: [.email , .publicProfile], viewController: self ) { result in self.loginManagerDidComplete(result) } 如何解码

我试图实现文档中提到的完全相同的代码,因此当我通过以下方式从用户处获得授权权限时

let loginManager = LoginManager()
    loginManager.logIn(
        permissions: [.email , .publicProfile],
        viewController: self
    ) { result in
        self.loginManagerDidComplete(result)
    }
如何解码公共档案以获取所有内部信息

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

我们可以从下面的代码中获得详细信息吗

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)
        }
    }

在登录权限的完成处理程序中,发出图形请求以获取配置文件信息。您的登录功能只要求权限,后续调用将返回您所需的信息

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"]
                })
}

我们能从上面编辑的问题代码中得到它吗??你给出的答案我已经实现了。但是试图从上面的代码中得到。这是可能的吗?不,你需要进行图形请求。正如我在回答中提到的,grantedPermissions的结果就是,您被授予的权限。您需要在登录时获得批准,然后才能继续从Graph请求详细信息。您还可以在Swift FBSDK文档中找到此信息