2011-11-28 14 views
11

Quando l'utente tenta di accedere alla mia app iOS utilizzando il Single Sign-On (SSO) di Facebook Connect, fallisce più volte prima di consentire all'utente di accedere all'app. Ciò non si verifica ogni volta, ma si verifica la prima volta che l'utente tenta di accedere utilizzando Facebook.SSO che richiede più tentativi di accesso

Procedura per riprodurre:

  1. utente dovrebbe avere l'ultima versione dell'app di Facebook per iOS installata sul proprio iPhone.
  2. In multitasking, assicurarsi che l'app Facebook e l'app di base siano entrambe chiuse.
  3. Toccare Connetti con il pulsante Facebook nell'app di base.
  4. Questo apre la tua app di Facebook e reindirizza alla tua app di base senza alcuna azione.

Comportamento previsto:

metodo
  • (void)fbDidLogin dovrebbe essere chiamato che l'autenticazione all'interno della app di base.

Actual Comportamento:

  • (void)fbDidNotLogin:(BOOL)cancelled viene chiamato per la prima volta da solo.

risposta

0

Hai solo bisogno di aggirare files..Just di FBConnect API guardare quel file nel file di Facebook.m c'è un metodo "authorizeWithFBAppAuth" in questo metodo il codice per "altra applicazione aperta" è scritto ..si basta commentare quel codice ed eseguire la tua app. Non ti reindirizzerà all'app Facebook predefinita installata sul tuo dispositivo.

+0

Questo è bello sapere, e potrebbe essere quello che devo fare. Spero che ci sia un'altra risposta, però, perché se l'utente ha l'app, è molto più probabile che abbia già effettuato l'accesso, imo, e non sia necessario inserire le proprie credenziali Facebook e quindi ok la mia app. –

1

Un ottimo punto di partenza sarebbe this link. Ora puoi scaricare il nuovo SDK di Facebook e puoi integrare questo SDK nella tua app iOS. Il collegamento descrive la soluzione passo dopo passo. NON è necessario utilizzare metodi di accesso delegati come fbdidlogin ecc.

È possibile controllare il tempo in cui l'utente ha effettuato l'accesso con l'aiuto dell'evento sessionStateChanged.

- (void)sessionStateChanged:(FBSession *)session 
        state:(FBSessionState) state 
        error:(NSError *)error 
{ 
switch (state) { 
    case FBSessionStateOpen: 
     if (!error) { 
      // We have a valid session 
      NSLog(@"User session found"); 
     } 
     break; 
    case FBSessionStateClosed: 
     NSLog(@"session state closed"); 
     break; 
    case FBSessionStateClosedLoginFailed: 
     [FBSession.activeSession closeAndClearTokenInformation]; 
     break; 
    default: 
     break; 
} 

[[NSNotificationCenter defaultCenter] postNotificationName:FBSessionStateChangedNotification 
                object:session]; 
} 

nel vostro controller della vista è possibile all'utente seguente condizione per controllare il meteo l'utente viene registrato in:

if (FBSession.activeSession.isOpen) { 
    // your code here 
} 

Tutto è descritto nel link indicato.

Problemi correlati