2011-10-05 20 views
7

Estoy tratando de implementar el nuevo SDK de facebook de oAuth2 en mi aplicación pero no puedo entender cómo debo volver a mi aplicación una vez que haya iniciado sesión/autenticadoFacebook iOS SDK no regresa a mi aplicación

Mi objetivo es publicar un mensaje en la pared de los usuarios.

Actualmente estoy empezando el procedimiento de conexión con esto:

-(void)tryFBlogin { 

NSString *appId = @"113142482******"; 

NSArray *permissions = [[NSArray arrayWithObjects:@"publish_stream",nil] retain]; 

TheAppDelegate *theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication]delegate]; 

//Asking for permission 
theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate]; 
theAppDelegate.facebook = [[Facebook alloc] initWithAppId:appId andDelegate:self]; 
Facebook *fb = [theAppDelegate facebook]; 
[fb authorize:permissions]; 

} 

que se abre un navegador Safari. Si ya estoy conectado y tengo la aplicación autorizada, un mensaje me lo dirá y tengo un botón OKay para presionar.

Cuando presiono el botón Aceptar, aparece una alerta que dice que Safari no puede abrir la página. Confirmo la alerta y me quedo mirando una ventana de safari en blanco.

Si estoy desconectado de facebook me presento con la pantalla de inicio de sesión que llené y luego me presentaron el mismo que el anterior.

Entiendo que todavía no he implementado el comando de publicación porque no sé dónde ni cuándo debería implementarse.

tengo este método delegado en su lugar, pero esto parece no ser llamado

- (void)fbDidLogin { 

    NSLog(@"fbDidLogin"); 
} 

Este es el código que he esperando para colocar en algún lugar:

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys: 
kAppId, @"113142482******", 
facebookUrl, @"link", 
@"http://www.domain.com", @"picture", 
@"My Message", @"name", 
@"Caption text!", @"caption", 
@"Message text.", @"message", 
nil]; 

[facebook dialog:@"feed" andParams:params andDelegate:self]; 

también tengo los siguientes métodos en mi aplicación AppDelegate principal:

-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url{ 
    [facebook handleOpenURL:url]; 
return YES; 
} 

Cualquier ayuda/sugerencia sería en gran medida una ppreciated

Gracias

Marcos

+0

¿Ha registrado su aplicación para abrir la devolución de llamada desde Facebook SDK en su lista (CFBundleURLTypes)? – mja

+0

No estoy seguro de si esta era mi estupidez o mis instrucciones poco claras, pero mi problema era definir fb [113142482 ******] cuando necesita ser fb113142482 ******. Eso es sin llaves cuadradas. – crooksy88

Respuesta

25

que tenía este mismo problema. Solo para aclarar algunas de las otras respuestas, así es como me ha solucionado el problema para mi aplicación para el iPhone en Xcode 4.2:

.plist file 
    "URL types" 
    "Item 0" 
     "URL Schemes" 
     "Item 0" 
      "fb21593853845xxxx" 
+0

¿Puedes elaborar un poco más sobre esto? ¿Cuál es el valor "fb21593853845xxxx"? – Dermot

+1

¡Claro! Ese es el valor del campo "Clave ID de aplicación/API" (como se encuentra en la página developers.facebook.com/apps, en Configuración) con un prefijo "fb" agregado según la documentación del SDK de Facebook iOS. –

+0

Juro que el tutorial podría haber enfatizado los requisitos de la letra "fb". Simplemente dice fbYOUR_APP_ID, supuse que era solo el número. Nunca pensé que necesitaría el "fb" delante de los números. – Zhang

-1

usted debe escribir su AppID a su .Plist

0

Arg, que .Plist mejor abierta como fuente de código, debería ver:

<key>CFBundleURLTypes</key> 
<array> 
    <dict> 
     <key>CFBundleURLSchemes</key> 
     <array> 
      <string>fb38*******</string> 
     </array> 
    </dict> 
</array> 
Cuestiones relacionadas