2012-07-12 7 views
7

estoy desarrollando aplicación de chat de Facebook usando xmppframework.I tiene acceso a Facebook pero
símbolo este acceso no se autentican por objeto xmppstream:cómo puedo autenticar Facebook token de acceso de acuerdo al objeto xmppstream en iPhone

Aquí es mi método setupStream

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

aquí es mi método de conexión

-(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; 
} 

aquí es mi método xmppStreamDidconnect delegado para la autenticación

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

cuando corro esta aplicación que estoy recibiendo el error barbecho

didNotAuthenticate

Puede alguien plz solucionar mi problema.

+0

Si usted ha resuelto el problema, comente por favor. También tengo un problema. Gracias – Shamsiddin

Respuesta

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 

cómo autenticar al usuario con la API de gráficos

¿Cómo funciona la autenticación OAuth para autenticar a los usuarios de Facebook, la Graph API utiliza el nuevo protocolo OAuth 2.0. No se preocupe, el nombre suena imponente, pero la forma en que funciona es bastante simple. La idea es que hagas una aplicación usando el portal del desarrollador de Facebook, y cuando lo haces, obtienes una identificación única para tu aplicación llamada clave API. Luego, cuando desea iniciar sesión en Facebook, vaya a la siguiente URL en un navegador web: https://graph.facebook.com/oauth/authorize? client_id = [su clave API] & redirect_uri = http://www.facebook.com/connect/login_success.html& scope = [permisos ampliados que desee] & type = user_agent & pantalla = tocar el usuario verá una página estándar de usuario de Facebook y que puedan entrar en su nombre de usuario y contraseña, y dar todos los permisos necesarios. No necesita implementar un redirect_uri usted mismo; puede usar uno preestablecido de Facebook, como se muestra arriba. La devolución de llamada preestablecida le devolverá un token de acceso, que es lo que necesitará para realizar todas las solicitudes futuras. Cuando un usuario inicia sesión, Facebook almacena cierta información sobre el inicio de sesión en las cookies. Así que la próxima vez que intente iniciar sesión, si las cookies no han expirado, ¡el inicio de sesión se completará automáticamente sin la intervención del usuario!

1

chat de facebook utiliza conexión segura por lo tanto el método de conexión debe tener este aspecto

- (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

¿qué es eso? _streamType == AAConnectStreamTypeFacebook "me sale el error en este –

+0

su variable de clase de tipo de secuencia, porque si utiliza cualquier otro servicio como google chat su diferente modo de conexión/autenticación –

+0

cómo enviar mensajes de la aplicación a fb ? –

Cuestiones relacionadas