2014-10-14 4 views
3

Примечание: Я следую рекомендациям для входа в систему от Native Facebook Login stopped working after SDK update to 3.14.Ошибка входа в систему на SDK SDK

Ошибка заключается в следующем:

2014-10-13 20: 03: 27,378 Регистрация [1916: 407643] Ошибка Domain = com.facebook.sdk Code = 9 «Доступ не предоставлен на счет Facebook. Проверьте настройки устройства. " UserInfo = 0x1753c630 {NSLocalizedDescription = Доступ не был предоставлен учетной записи Facebook . Проверьте настройки устройства. NSLocalizedFailureReason = Доступ имеет не был предоставлен учетной записи Facebook. Проверьте настройки устройства}

Это код ниже:.

// RegistrationManager.m

- (void)setupFacebook 
{ 
    FBSessionStateHandler completionHandler = ^(FBSession *session, FBSessionState status, NSError *error) { 
     [self sessionStateChanged:session state:status error:error]; 
    }; 

    if ([FBSession activeSession].state == FBSessionStateCreatedTokenLoaded) 
    { 
     // we have a cached token, so open the session 
     [[FBSession activeSession] openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent 
            completionHandler:completionHandler]; 
    } 
    else 
    { 
     [self clearAllUserInformation]; 

     // create a new facebook session 
     FBSession *fbSession = [[FBSession alloc] initWithPermissions:@[@"public_profile"]]; 
     [FBSession setActiveSession:fbSession]; 
     [fbSession openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent completionHandler:completionHandler]; 
    } 
} 

- (void)clearAllUserInformation 
{ 
    [FBSession.activeSession closeAndClearTokenInformation]; 
    [FBSession renewSystemCredentials:^(ACAccountCredentialRenewResult result, NSError *error) { 
     NSLog(@"%@", error); 
    }]; 
    [FBSession setActiveSession:nil]; 
} 

// RegistrationViewController.m

- (IBAction)loginButtonPressed:(id)sender 
{ 
    // If the session state is any of the two "open" states when the button is clicked 
    if (FBSession.activeSession.state == FBSessionStateOpen 
     || FBSession.activeSession.state == FBSessionStateOpenTokenExtended) 
    { 
     // Close the session and remove the access token from the cache 
     // The session state handler (in the app delegate) will be called automatically 
     [FBSession.activeSession closeAndClearTokenInformation]; 

     // If the session state is not any of the two "open" states when the button is clicked 
    } else 
    { 
     FBSessionStateHandler completionHandler = ^(FBSession *session, FBSessionState status, NSError *error) { 
      [registrationManager sessionStateChanged:session state:status error:error]; 
     }; 

     // create a new facebook session 
     FBSession *fbSession = [[FBSession alloc] initWithPermissions:@[@"public_profile"]]; 
     [FBSession setActiveSession:fbSession]; 
     [fbSession openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent completionHandler:completionHandler]; 
    } 
} 

При нажатии на кнопку, он с означает, говорит

2014-10-13 20: 03: 29,560 Регистрация [1916: 407643] Сессия закрыта 2014-10-13 20: 03: 29,561 Регистрация [1916: 407643] пользователь выходит из системы. 2014-10-13 20: 03: 29.573 Регистрация [1916: 407643] Пользователь выходит из системы.

ответ

1

Это означает, что пользователь, который когда-то выбрал «Не разрешать» во всплывающем окне, запрашивает разрешение. Если у него есть учетная запись на Facebook, связанная с настройками, с этого момента каждый раз, когда он будет пытаться войти в систему, она покажет эту ошибку. Это не спасет Safari или что-нибудь еще, просто покажите эту ошибку. Пользователь должен войти в Настройки -> Facebook и установить ползунок для вашего приложения в положение ВКЛ.

Смежные вопросы