我使用PFFacebookUtils.logInWithPermissions
登录我的应用程序但是,我第一次登录实际登录时工作正常,但我收到FB错误code = 2500 An active access token must be used to query information about the current user
。这会导致任何graphRequests失败。
如果我然后将代码重新编译到设备,则不会发生此错误,并且所有graphRequests都可以正常工作。为什么应用在第一次登录时没有获得访问令牌?此外,如果我从设备中完全删除了应用程序并重新安装,则整个过程将再次启动(首次尝试时出现错误代码= 2500)。
也许值得注意的是,这并没有发生在以前版本的Parse和FB SDK中。我刚刚开始将这个应用程序移动到iOS9,并且当这个问题出现时就是这样。
Xcode 7.0.1,Parse SDK v1.8.5,FacebookSDKs-iOS-20150910
答案 0 :(得分:1)
我能够通过首先调用FBSDK登录方法,然后调用Parse SDK登录方法(在FBSDK回调中)来解决此问题:
@IBAction func facebookButtonAction(sender: AnyObject) {
// Ensure that PFUser == nil - just in here because I heard it can help with some possible issues
PFUser.logOut()
let permissions = ["public_profile", "email", "user_friends"]
// First, login with FB’s SDK
let login: FBSDKLoginManager = FBSDKLoginManager()
login.logInWithReadPermissions(permissions, handler: {(result: FBSDKLoginManagerLoginResult!, error: NSError!) in
if (error != nil) {
NSLog("Process error")
} else {
if result.isCancelled {
NSLog("Cancelled")
} else {
NSLog("Logged in")
// Then with Parse’s, upon FB login success
PFFacebookUtils.logInWithPermissions(permissions) { (user, error) -> Void in
if let user = user {
if user.isNew {
print("User signed up and logged in through Facebook!”)
//...
} else {
print("User logged in through Facebook!")
//...
}
} else {
print("Uh oh. The user cancelled the Facebook login.")
//...
}
}
}
}
})
}