2011-08-31 22 views
13

Acabo de empezar a ver un problema con la autenticación de Facebook Connect. Si tengo la versión 3.4.4 de la aplicación de iOS instalada, se llama al método fbDidNotLogin de mi delegado con un mensaje de error de "El usuario denegó su solicitud". Cuando desinstalo la aplicación FB, la autenticación funciona bien. ¿Alguien más está viendo esto? ¿Alguien sabe cómo puedo enrutar este error?Autenticación falla con la aplicación de Facebook instalada (iOS)

Aquí es mi llamada al objeto de Facebook:

[[app facebook] authorize:[NSArray arrayWithObjects: 
          @"publish_stream", @"offline_access", nil] 
          delegate:app]; 
+2

Actualización: obtengo este mismo comportamiento de la última aplicación de muestra, descargada hoy. Conecto mi ID de aplicación y el método de delegado fbDidNotLogin de la aplicación de muestra se llama constantemente. –

+0

Podría echar un vistazo a esto también: http://stackoverflow.com/questions/30612701/ios-facebook-sdk-your-apps-facebook-login-is-broken – iYoung

Respuesta

15

Asegúrate de que el ID de tu paquete de aplicaciones esté configurado correctamente en la página de Facebook de tu aplicación.

Creo que acaban de empezar a hacer cumplir esto, razón por la cual se rompió recientemente.

Debería poder cambiar esto accediendo a la configuración de sus aplicaciones en Facebook, y haciendo clic en "Editar configuración" desde la pantalla donde obtiene su ID de aplicación. La sección 'Mobile Native' te permitirá cambiar tu ID de paquete de iOS para que coincida con el identificador de paquete que tienes en Info.plist.

Espero que esto ayude a alguien! Sepa que puede hacer que esto funcione con la última aplicación de Facebook, y probablemente sea un problema de configuración como el descrito anteriormente.

+1

Bingo. Gracias por el puntero. La identificación del paquete distingue entre mayúsculas y minúsculas, que era mi problema. Lo extraño es que se comporta de manera diferente según la versión de la aplicación FB que haya instalado. Espero que este tipo de aplicación sea una función de la lógica del servidor de Facebook, no del cliente -side. –

+0

@Steve - Esta verificación requiere soporte del cliente, ya que es el cliente el que puede (y debe) enviar (o recibir) la identificación del paquete para la verificación. La aplicación podría ser del lado del servidor.Solo que permiten que la versión anterior de la aplicación FB funcione sin tener que hacer la verificación de ID de paquete de otras aplicaciones. De lo contrario, cada instalación de la aplicación FB de iOS debe actualizarse para que funcione cualquier otra aplicación FB-Connected, lo que ciertamente no es deseable. – brahmana

+0

Eso tiene sentido, aunque deberían haber estado enviando información de identificación del paquete todo el tiempo. Y aparentemente todavía no envían el ID del paquete a la implementación de autenticación no de aplicación, por lo que es inconsistente. Sin embargo, todavía no estoy contento con Facebook por (1) no enviar correos electrónicos a los desarrolladores sobre cambios de política que nos den un aviso sobre qué verificar (seguramente conocen nuestras direcciones de correo electrónico), y (2) dar un mensaje de error no descriptivo ("El usuario denegó su solicitud" - no, si hubiera sido que "ID de paquete de iOS no coincide" hubiera sido fácil localizarlo). –

4

puedo confirmar que estoy experimentando el mismo problema aquí. Backtraced un poco, y veo la aplicación de Facebook está abriendo mi aplicación con esta cadena de consulta en la url:

ERROR_REASON = user% 5Fdenied & error = Acceso% 5Fdenied & ERROR_DESCRIPTION = El% 2Buser% 2Bdenied% 2Byour % 2Brequest% 2E% 3F% 5F

supongo que por desgracia no hay nada que podamos hacer más que esperar: S

+0

Lamentablemente, hacer que la aplicación se conecte utilizando la alternativa webView es no es una solución para mí No creo que empeore la integración de Facebook de esa manera (es mucho más fácil para los usuarios que inician sesión en la aplicación de Facebook) al enviar una actualización a Apple es una buena idea :( –

0

Como se señaló en this thread, puede forzar FBConnect utilizar los cuadros de diálogo de Safari en lugar de cambiar la aplicación rápida a la aplicación FB instalada. Solo comenta el bloque de código en Facebook.m que llama a la aplicación FB.

Esta es una forma de desviar el error FB hasta que arreglen su aplicación. No es una solución ideal, pero funciona.

1

Es bastante obvio, pero si su aplicación es un espacio aislado, entonces debe asegurarse de que todos los que inicien sesión sean "Tester" o superiores en la configuración de la aplicación de Facebook. : - $

Cuestiones relacionadas