解析Anypic Facebook登录错误

时间:2015-08-19 20:23:49

标签: facebook parse-platform facebook-login

我正在使用Parse的Anypic进行实验,我不断收到这三个错误:

Presenting view controllers on detached view controllers is discouraged <PAPWelcomeViewController>

然后去

Unbalanced calls to begin/end appearance transitions for <UINavigationController>

最后

Login failure. FB Access Token or user ID does not exist

我按照教程中的说明设置了所有内容。它过去工作得很好,我没有得到这些错误,但是当我回到项目一段时间后,我得到了这些错误。

他们正在尝试通过Facebook登录应用程序时发生这种情况。我选择登录,输入我的详细信息,点击登录然后没有任何反应,它只是回到&#34;登录Facebook&#34;按钮。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您应该尝试将handleFacebookSession更改为如下所示:

- (void)handleFacebookSession {
if ([PFUser currentUser]) {
    if (self.delegate && [self.delegate respondsToSelector:@selector(logInViewControllerDidLogUserIn:)]) {
        [self.delegate performSelector:@selector(logInViewControllerDidLogUserIn:) withObject:[PFUser currentUser]];
    }
    return;
}

NSArray *permissionsArray = @[ @"public_profile",
                               @"user_friends",
                               @"email"];

self.hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];

// Login PFUser using Facebook
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {

    if (!user) {
        NSString *errorMessage = nil;
        if (!error) {
            NSLog(@"Uh oh. The user cancelled the Facebook login.");
            errorMessage = @"Uh oh. The user cancelled the Facebook login.";
        } else {
            NSLog(@"Uh oh. An error occurred: %@", error);
            errorMessage = [error localizedDescription];
        }
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Log In Error"
                                                        message:errorMessage
                                                       delegate:nil
                                              cancelButtonTitle:nil
                                              otherButtonTitles:@"Dismiss", nil];
        [alert show];
    } else {
        if (user.isNew) {
            NSLog(@"User with facebook signed up and logged in!");
        } else {
            NSLog(@"User with facebook logged in!");
        }

        if (!error) {
            [self.hud removeFromSuperview];
            if (self.delegate) {
                if ([self.delegate respondsToSelector:@selector(logInViewControllerDidLogUserIn:)]) {
                    [self.delegate performSelector:@selector(logInViewControllerDidLogUserIn:) withObject:user];
                }
            }
        } else {
            [self cancelLogIn:error];
        }
    }
}];}

解决方案取自here