2016-05-22 4 views
1

Я внедрил логин через Facebook с помощью синтаксического анализатора.FBSDKLoginManager работает, PFFacebookUtils logInInBackgroundWithReadPermissions не

Если я использую это, я получаю информацию о пользователях правильно:

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
[login 
logInWithReadPermissions: @[@"public_profile",@"email"] 
fromViewController:self 
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
    if (error) { 
     NSLog(@"Process error"); 
    } else if (result.isCancelled) { 
     NSLog(@"Cancelled"); 
    } else { 
     NSLog(@"Logged in %@",result); 
     [self fetchUserInfo]; 
    } 
}]; 

, но я хочу использовать PFFacebookUtils для легкого создания пользователя в Parse:

[PFFacebookUtils logInInBackgroundWithReadPermissions:@[@"public_profile",@"email"] block:^(PFUser *user, NSError *error) { 
    if (!user) { 
     //... 
    } else if (user.isNew) { 
     //... 
    } else { 
     //... 
    } 
}]; 

The Facebook модальный появляется с запросом авторизации , но когда я нажимаю ok, я получаю эту ошибку:

[Ошибка]: для этого пользователя недействителен Facebook. (Код: 101, Версия: 1.13.0).

Внутри настроек приложений на Facebook есть приложение.

ответ

0

Это происходит в приложении Parse, когда пользователь изменил пароль Facebook или удалил приложение в настройках приложений на Facebook.

User.authДата должна быть обновлена ​​PFFacebookUtils.logInInBackgroundWithReadPermissions:, но, похоже, она не обновляется. Я думаю, что это проблема Parse Server.

Обход проблемы: при возникновении этой ошибки вы можете обновить User.authData с помощью PFFacebookUtils.linkUserInBackground:withReadPermissions:.