我对Facebook api有疑问。在登录并成功展开用户令牌后,我在获取用户个人资料时遇到问题:它没有。
func updateLoginStatus() {
if let _ = AccessToken.current {
let currentUser = UserProfile.current
userName.text = currentUser?.fullName
userPictureView = UserProfile.PictureView(frame: blankUserImage.frame, profile: currentUser)
userPictureView!.clipsToBounds = true
userPictureView!.layer.cornerRadius = userPictureView!.bounds.width/2
popUpView.addSubview(userPictureView!)
isLogged = true
updateLabels()
} else {
isLogged = false
userPictureView?.removeFromSuperview()
updateLabels()
}
}
即使我尝试使用let userProfile = UserProfile(userId: (AccessToken.current?.userId)!)
获取配置文件手册,它也会在所有参数中取nil,但它已初始化用户。有趣的是,使用UserProfile.current它可以拍摄用户照片。它可以是什么?我如何通过其他方法获得完整的用户名?
答案 0 :(得分:1)
这个问题也在android中发生。 在获得访问令牌后,您应该加载配置文件(在android中监听配置文件更改)。 我写了一个样本,刚刚在swift 3,Facebook iOS SDK 4.21.0中测试过。 然后你就可以得到更新的用户。
if let _ = FBSDKAccessToken.current() {
if let currentUser = FBSDKProfile.current() {
print("current user got: \(currentUser)")
} else {
print("current user not got")
FBSDKProfile.loadCurrentProfile(completion: {
profile, error in
if let updatedUser = profile {
print("finally got user: \(updatedUser)")
} else {
print("current user still not got")
}
})
}
}