2012-07-12 9 views
7

Sto sviluppando un'applicazione di chat di Facebook utilizzando xmppframework.I ottenuto l'accesso a Facebook simbolico, ma
questo accesso non è l'autenticazione per oggetto xmppstream:come posso autenticare Facebook token di accesso usando l'oggetto xmppstream in iPhone

Ecco il mio metodo setupStream

- (void)setupStream 
{ 
    XMPPStream *xmppStream=[[XMPPStream alloc] initWithFacebookAppId:@"443170809037796"]; 
} 

qui è il mio metodo di connessione

-(BOOL)connect1 
{ 
    NSLog(@"connect1"); 
    NSError *error = nil; 
    if(![xmppStream isDisconnected]) 
    { 
     NSLog(@"isDisconnected"); 
     return YES; 
    } 
    if (![xmppStream connect:&error]) 
    { 
     UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error connecting fb" 
                  message:@"See console for error details." 
                  delegate:nil 
                cancelButtonTitle:@"Ok" 
                otherButtonTitles:nil]; 
     [alertView show]; 
     return NO; 
    } 
    return YES; 
} 

Ecco il mio metodo xmppStreamDidconnect delegato per l'autenticazione

- (void)xmppStreamDidConnect:(XMPPStream *)sender 
{ 
    isXmppConnected = YES; 
    NSError *error = nil; 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [xmppStream authenticateWithFacebookAccessToken:[defaults    objectForKey:@"FBAccessTokenKey"] error:&error];   
} 

quando faccio funzionare questa applicazione sto ottenendo l'errore maggese

didNotAuthenticate

Uno può risolvere il mio problema plz.

+0

Se avete risolto il problema, si prega di commentare. Ho anche un problema. Grazie – Shamsiddin

risposta

0
http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/ 


http://www.raywenderlich.com/1488/how-to-use-facebooks-new-graph-api-from-your-iphone-app 

Come per autenticare l'utente con l'API Graph

Come OAuth autenticazione Opere per autenticare gli utenti su Facebook, l'API grafico utilizza il nuovo protocollo OAuth 2.0. Non preoccuparti: il nome sembra imponente, ma il modo in cui funziona è in realtà piuttosto semplice. L'idea è di creare un'app utilizzando il portale degli sviluppatori di Facebook e quando ottieni un ID univoco per la tua app chiamato chiave API. Quindi, quando si desidera registrare un utente in Facebook, si accede al seguente URL in un browser Web: https://graph.facebook.com/oauth/authorize? client_id = [la tua chiave API] & redirect_uri = http://www.facebook.com/connect/login_success.html& scope = [autorizzazioni estese che si desidera] & type = user_agent & visualizzazione = toccare l'utente vedrà una pagina standard di login di Facebook e possono entrare nella loro nome utente e la password e fornire tutte le autorizzazioni richieste. Non è necessario implementare un redirect_uri da soli: è sufficiente utilizzare uno predefinito di Facebook, come mostrato sopra. Il callback preimpostato ti restituirà un token di accesso, che è quello che ti servirà per fare tutte le richieste future. Quando un utente esegue il login, Facebook memorizza alcune informazioni sul login nei cookie. Quindi la prossima volta che provi ad accedere, se i cookie non sono scaduti, il login si completerà automaticamente senza l'intervento dell'utente!

1

Facebook Chat utilizza la connessione sicura in tal metodo connect dovrebbe assomigliare a questa

- (void)xmppStreamDidConnect:(XMPPStream *)sender 
{ 
    DDLogVerbose(@"%@: %@", THIS_FILE, THIS_METHOD); 

    isXmppConnected = YES; 

    NSError *error = nil; 
    //facebook connection 
    if (_streamType == AAConnectStreamTypeFacebook) { 

     if (![xmppStream isSecure]) 
     { 

      NSError *error = nil; 
      BOOL result = [xmppStream secureConnection:&error]; 

      if (result == NO) 
      { 
       DDLogError(@"%@: Error in xmpp STARTTLS: %@", THIS_FILE, error); 

      } 
     } 
     else 
     { 

      NSError *error = nil; 
      BOOL result = [xmppStream authenticateWithFacebookAccessToken:FBSession.activeSession.accessTokenData.accessToken error:&error]; 

      if (result == NO) 
      { 
       DDLogError(@"%@: Error in xmpp auth: %@", THIS_FILE, error); 

      } 
     } 
    } 
    else if (![[self xmppStream] authenticateWithPassword:password error:&error]) 
    { 

     DDLogError(@"Error authenticating: %@", error); 
    } 
} 
+0

cos'è "_streamType == AAConnectStreamTypeFacebook" sto ricevendo errore in questo –

+0

la sua variabile di tipo stream class, perché se si utilizza qualsiasi altro servizio come google chat la sua diversa modalità di connessione/auth –

+0

come inviare un messaggio da un'applicazione a fb ? –

Problemi correlati