ios - 在 swift4 中的 facebook 集成中获取用户详细信息
问题描述
我正在尝试在集成 FBSDK 后获取用户详细信息。但不幸的是,我收到了一个错误,例如“使用未解析的标识符 'FacebookCore'”。如果有人帮助我,那就太好了。谢谢!
//Imported SDK
import UIKit
import FBSDKCoreKit
import FBSDKLoginKit
func fetchUserProfile()
{
let AccessToken = FBSDKAccessToken.current()
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"id, email, name, picture.width(480).height(480)"], accessToken: AccessToken.current, httpMethod: .GET, apiVersion: FacebookCore.GraphAPIVersion.defaultVersion))
request.start({ (response, requestResult) in
switch requestResult{
case .success(let response):
print(response.dictionaryValue)
case .failed(let error):
print(error.localizedDescription)
}
})
}
解决方案
您可以通过这种方式获取数据。但是您需要使用 pod 或手动安装新的最新库
import FBSDKLoginKit
func signInWithFB(_ forVC:UIViewController , sucess:@escaping (_ data:NSMutableDictionary) -> (Void) , falure:@escaping (_ error:NSError? , _ cancle:Bool?) -> (Void))
{
let obj_facebook = FBSDKLoginManager()
obj_facebook.loginBehavior = .native
obj_facebook.logOut()
// "user_birthday","user_gender"
obj_facebook.logIn(withReadPermissions: ["public_profile","email"], from: forVC) { (result:FBSDKLoginManagerLoginResult?, error:Error?) -> Void in
if ((error) != nil)
{
falure(error as NSError?, false)
}
else if ((result?.isCancelled) == true)
{
falure(nil, true)
}
else
{
let dicLoginData = NSMutableDictionary()
// name,email,first_name,last_name,birthday
let request = FBSDKGraphRequest(graphPath: "/me?fields=name,email,first_name,last_name", parameters: nil)
let _ =
request?.start(completionHandler: { (Connection:FBSDKGraphRequestConnection?, result:Any!, error:Error?) -> Void in
if error == nil
{
guard let results = result as? [String: Any] else {
falure(nil, false)
return
}
sucess(result)
}
else
{
falure(error as NSError?, false)
}
})
}
}
}
推荐阅读
- python - 当我无权访问实例本身时,如何设置模拟类实例的 return_value?
- amazon-web-services - aws cli 未能返回角色策略
- azure - SP 更新和通过 terraform 更新 keyvault
- kubernetes - 如何在不使用 Kops 命令的情况下删除 kubernetes 中的主节点和工作节点
- python-3.x - 如何实现条形图的日期范围
- python - 权重归一化导致 PyTorch 中的 nan
- c++ - 有没有办法确定在树上通过它的叶到叶节点数量最多的节点?
- c - 有符号和无符号字符之间的比较
- java - Android CameraX 拍照前如何确保对焦?(应该是一个很常用的功能!)
- mysql - 如何在mysql中创建别名