如何获取Facebook用户配置文件(swift)
问题描述:
我一直在通过swift获取用户配置文件信息。 有没有错误,但我想检查此代码是否工作或因为下面的错误,我无法检查模拟器。如何获取Facebook用户配置文件(swift)
错误:退回到存储,因为模拟器错误
据我所知的访问NSUserDefaults的象征,这个错误不会发生在真实的设备。
class FetchUserProfileController: UIViewController {
@IBOutlet weak var userFullName: UILabel!
@IBOutlet weak var userProfileImage: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
userFullName.text = ""
if let _ = FBSDKAccessToken.current()
{
fetchUserProfile()
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func fetchUserProfile()
{
let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"id, email, name, picture.width(200).height(200)"])
graphRequest.start(completionHandler: { (connection, result, error) -> Void in
if ((error) != nil)
{
print("Error took place: \(error)")
}
else
{
print("Print entire fetched result: \(result)")
let fbData:[String:AnyObject] = result as! [String : AnyObject]
let userName : NSString? = fbData["name"]! as? NSString
let facebookID : NSString? = fbData["id"]! as? NSString
if let imageURL = ((fbData["picture"] as? [String: Any])?["data"] as? [String: Any])?["url"] as? String {
//Download image from imageURL
}
}
})
}
}
答
您的代码应该正常的设备上运行。 Facebook登录SDK阻止iOS模拟器缓存访问令牌。如果您没有真实设备并且需要在模拟器上检查登录,请执行以下操作:
1)在您的项目中搜索FBSDKKeychainStore.m:
。
2)进入管线94,并添加key = [NSString stringWithFormat:@"%@_fix", key];
之前[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];
3)进入管线135,并添加相同,key = [NSString stringWithFormat:@"%@_fix", key];
之前[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];
它仍然会打印你所提到的错误线,但你将可以使用模拟器的Facebook登录