2016-01-21 143 views
0

我的解析应用遇到问题。我有Facebook链接当前匿名用户的功能。FB登录后无效的解析会话令牌

在AppDelegate的文件,我有这个功能:

if (PFUser.currentUser() == nil) { 
    PFAnonymousUtils.logInInBackground() 
} else if (PFUser.currentUser() != nil && PFFacebookUtils.isLinkedWithUser(PFUser.currentUser()!)) { 
    PFFacebookUtils.logInInBackgroundWithAccessToken(FBSDKAccessToken.currentAccessToken()) 
} 

但当前用户的Facebook登录/链接,在接下来的几个应用程序启动后,错误209被接收。

我几乎读了所有这些问题,但没有解决我的问题。

当用户点击Facebook登录按钮:

if PFFacebookUtils.isLinkedWithUser(PFUser.currentUser()!) { 
     PFFacebookUtils.linkUserInBackground(PFUser.currentUser()!, withReadPermissions: permissions, block: { (success: Bool, error: NSError?) -> Void in 
      if success.boolValue { 
       PFFacebookUtils.linkUserInBackground(PFUser.currentUser()!, withAccessToken: FBSDKAccessToken.currentAccessToken()) 
       self.obtainFacebookProfile() 
      } 
     }) 
    } else { 
     PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions, block: { (user: PFUser?, error: NSError?) -> Void in 
      if error != nil { 
       return 
      } 

      if user != nil { 
       PFFacebookUtils.linkUserInBackground(user!, withAccessToken: FBSDKAccessToken.currentAccessToken()) 
       self.obtainFacebookProfile() 
      } 
     }) 
    } 

我在我的Android应用程序相同的实现并没有这样的问题...

回答

0

我想我要解决这个问题摆脱AppDelegate类中的Facebook登录。由于当前用户已经与Facebook配置文件链接,因此无需在应用程序启动时再次执行此操作,因为它会生成新的会话令牌。问题是,也许Parse不能在下一个数据请求之前更新数据库中的会话令牌。

+0

我遇到了同样的问题,很明显,在令牌过期后,解析不会更新用户表中的令牌。你能解释一下如何解决这个问题吗?我可以通过FBSDK获取新的FB令牌,但Parse仍不会更新用户表中的条目 –