Facebook api swift当前用户为零

时间:2017-07-07 20:06:42

标签: ios swift facebook facebook-graph-api

我对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它可以拍摄用户照片。它可以是什么?我如何通过其他方法获得完整的用户名?

1 个答案:

答案 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")
            }
        })
    }
}