【问题标题】:Facebook Login via Safari or FB App doesn't work通过 Safari 或 FB 应用程序登录 Facebook 不起作用
【发布时间】:2024-05-02 16:00:03
【问题描述】:

当用户在 iOS8 设置中登录 Facebook 时,此方法可以正常工作。

但如果他不是,它会尝试使用 Safari 或 Facebook iOS 应用程序登录,一旦用户被重定向回应用程序,它只会显示此记录的消息,而不是登录用户。

我正在使用 Parse.com SDK。

消息记录

NSLog(@"Uh oh. The user cancelled the Facebook login.");

Facebook 登录方式

-(void)loginButtonPressed
{
      [PFFacebookUtils initializeFacebook];

        NSArray *permissionsArray = @[@"user_about_me"];

        // 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) {
                    [self dismissViewControllerAnimated:YES completion:nil];

                    NSLog(@"User with facebook signed up and logged in!");
                } else {
                    [self dismissViewControllerAnimated:YES completion:nil];

                    NSLog(@"User with facebook logged in!");
                }
               // [self _presentUserDetailsViewControllerAnimated:YES];
        }];

}

【问题讨论】:

    标签: ios facebook facebook-graph-api parse-platform


    【解决方案1】:

    AppDelegate.m 中添加这一行解决了这个问题。

    - (void)applicationDidBecomeActive:(UIApplication *)application {
    
        [FBAppCall handleDidBecomeActiveWithSession:[PFFacebookUtils session]];
    
        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    }
    

    【讨论】:

      最近更新 更多