2017-07-07 27 views
0

我对Facebook api有问题。登录并成功解开用户令牌后,我收到用户配置文件时遇到问题:无。Facebook api swift当前用户为零

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)!)也采取零的所有参数获得简介手册,但它已经初始化用户。有趣的部分是用那个UserProfile.current它已经把用户的照片。它可能是什么?我如何通过其他方法获取完整的用户名?

回答

0

此问题在android中也发生过。 您应该在获得访问令牌后加载配置文件(在android中监听配置文件更改)。 我写了一个示例,并在swift 3,Facebook iOS SDK 4.21.0中进行了测试。 然后你可以得到updatedUser。

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") 
      } 
     }) 
    } 
} 
+0

谢谢。我如何理解,得到AccessToken UserProfile.current后必须自动更新,但它不会发生? –

+0

文件写得不清楚。只有登录后才能获得该信息。 – Codus

相关问题