使用Parse SDK 1.9.1和Facebook 4.8.0,我不会收到回调,我的完成块也永远不会被执行。我的AppDelegate中有所有必要的东西,一切都很顺利,直到我升级了我的SDK。
我的代码中的示例:
if (![PFUser currentUser]) {
NSLog(@"!PFUser current user");
NSArray *permissions = @[@"public_profile", @"email", @"user_friends"];
[PFFacebookUtils logInInBackgroundWithReadPermissions:permissions block:^(PFUser *user, NSError *error) {
NSLog(@"User:%@",[user description]);
if (!user) {
NSLog(@"Uh oh. The user cancelled the Facebook login.");
NSLog(@"Uinfo :%@",[error userInfo][@"error"]);
} else if (user.isNew) {
NSLog(@"User signed up and logged in through Facebook!");
[self updateUiForLoggedInUser];
[self updateInstallationChannels];
} else {
NSLog(@"User logged in through Facebook!");
[self updateUiForLoggedInUser];
[self updateInstallationChannels];
}
if (error) {
NSLog(@"Error trying to login:%@",[error description]);
}
}];
}
还有:
if (![PFFacebookUtils isLinkedWithUser:[PFUser currentUser]]) {
[PFFacebookUtils linkUserInBackground:[PFUser currentUser] withReadPermissions:nil block:^(BOOL succeeded, NSError *error) {
if (succeeded) {
NSLog(@"Woohoo, user is linked with Facebook!");
}
}];
}
知道为什么吗?提前感谢!
编辑:我尝试移动PFFacebookUtils logInInBackgroundWithReadPermissions:到另一个视图控制器,它工作得很好。知道为什么它不能在MainViewController上工作吗?
我想明白了。不知道为什么会发生这种情况,但似乎对FBFacebookUtils的请求现在不是异步的。。。我在登录后台后立即调用了linkUserInBackground,得到的响应仅针对linkUserInBackground。把这两种方法分开后,一切都很好。