Exactamente lo que dice el título. ¿Es posible utilizar Facebook Connect (o cualquier otro medio de integración de FB) en una aplicación nativa de iPhone sin recurrir al diálogo de inicio de sesión integrado (que se ve horrible)? ¿Algo donde podría crear mi propia pantalla de inicio de sesión personalizada solicitando el nombre de usuario y la contraseña de inicio de sesión de Facebook y luego usar los métodos nativos fbconnect para validar esa información y recuperar una sesión válida?iPhone SDK/Facebook Connect: usando un diálogo de inicio de sesión personalizado
Respuesta
No lo hagas. Esto va en contra de la política y su aplicación se cerrará por eso. Como sugirió quixoto, esto se debe a que no queremos entrenar a los usuarios para que escriban su contraseña en lugares aleatorios, y porque el usuario no ha confirmado la acción según nuestros requisitos de UX. Actualmente estamos trabajando en un rediseño de estos diálogos para que sean más bonitos.
Gracias daaku. Esta es una pregunta muy antigua (en tiempo de desarrollo), pero dado que pareces ser un desarrollador oficial de FBConnect (o que tienes algún tipo de autoridad), acepto tu respuesta. – boliva
Heh - sí, solo comencé a buscar en Stack Overflow recientemente :) – daaku
Aunque los formularios de inicio de sesión personalizados pueden ser geniales, me gustaría que Twitter también tuviera algo como esto. – samvermette
Cuando miré en Facebook Connect, parecían bastante estrictos con su API y con cualquier modificación que pudiera querer hacer. Ni una sola vez se menciona en facebook.com/x la personalización de la interfaz, por lo que creo que debes seguir con lo que han aprobado.
facebook no es tuyo, es de ellos, así que si vas a vivir en su casa y usar su código, debes seguir sus reglas. Si no te gusta, imprime tu propia API sobre http con las clases de framework nativas – slf
@slf: estoy al tanto de eso. Es por eso que estoy preguntando si alguien sabe de una manera alternativa con una API existente que hace uso de los servicios que FB expone, y hasta ahora parece que la respuesta es 'no' ... – boliva
Que sería maravilloso si el diálogo de inicio de sesión realmente lleva a cabo validación de formulario básico al menos. Puede enviar el formulario sin completar su dirección de correo electrónico o contraseña. Shoddy, de mala calidad, trabajo de UI.
Sí y no.
Facebook utiliza la autenticación delegada para que la aplicación se conecte con ella. Por lo tanto, el usuario tiene la intención de poner su contraseña en algo "de confianza" (por ejemplo, la página de inicio de sesión de Facebook) para que su aplicación no la vea realmente, y solo obtenga la clave como resultado. La idea es que los usuarios estén capacitados para no confiar en otras páginas web/aplicaciones con su contraseña.
Por lo tanto, FB proporciona esta ventana emergente web en su biblioteca FBConnect, sin otra forma explícita de convertir las credenciales de un usuario en una sesión.
Dicho esto, y responderé a su pregunta técnica ya que es una pregunta legítima; puede hacer lo que desee creando un UIWebView fuera de pantalla, hospedando el URL de inicio de sesión de FB en esa vista web, e inyectando Javascript en la página usando stringByEvaluatingJavaScriptFromString:
. Ese Javascript podría tomar el nombre de usuario/contraseña, completar el formulario y enviarlo, sin que el usuario lo haya visto nunca. Lea el código de la biblioteca de FBConnect para comprender qué URL usar y qué hacer con el resultado de enviar la página. Puede volver a conectarla a la biblioteca.
Hacer esto es (1) frágil, ya que tendrás que confiar en IDs y cosas que pueden/cambiarán para vencer esas técnicas y (2) probablemente viole los términos de uso de FB Connect y por supuesto (3) no es bueno para la salud de autenticación en la web en general, ya que no refuerza que los usuarios no deben confiar en terceros con sus contraseñas.
Y no hace falta decir que si lo haces solo y les das a los usuarios una experiencia de autenticación con mejor aspecto, nunca jamás almacenes ni hagas nada con sus credenciales además de dárselas a Facebook.
@quixoto: He pensado en haciendo algo similar, pero como dices, podría romperse en cualquier momento. – boliva
Lamentablemente, no creo que encuentre una solución más estable que esta; La autorización delegada de Facebook es la forma en que le permiten autenticarse con ellos: puede finalizar esa interacción web en una vista oculta, o hacerlo manualmente usando un socket NSURLConnection con un montón de heurísticas inteligentes para encontrar los campos correctos, etc. pero no importa qué, vas a ser frágil en algún nivel, ya que no garantizan nada sobre las partes internas, excepto que la URL de autenticación seguirá siendo la misma. –
- 1. fb: botón de inicio de sesión personalizado?
- 2. Diálogo de inicio de sesión PyQt
- 3. Diseñar formulario de inicio de sesión personalizado
- 4. cakephp condiciones de inicio de sesión personalizado
- 5. Inicio de sesión personalizado ASP.NET C#
- 6. Seguridad de Windows Validación de inicio de sesión personalizado
- 7. Inicio de sesión personalizado utilizando un tercer parámetro
- 8. inicio de sesión automático con FBConnect en el iPhone
- 9. iOS - Facebook Connect cerrar sesión sin borrar los datos de inicio de sesión.
- 10. Facebook botón de inicio de sesión texto personalizado que revierte
- 11. Un problema típico con el inicio de sesión usando Zend_Form
- 12. Diálogo de Android personalizado
- 13. sesión se pierde después de un inicio de sesión exitoso?
- 14. facebook connect for android devuelve una pantalla de inicio de sesión en blanco?
- 15. Animar un cuadro de diálogo personalizado
- 16. ¿Desea descartar un cuadro de diálogo personalizado?
- 17. Regenerar identificadores de sesión con Nodejs Connect
- 18. Diálogo de inicio de sesión para la aplicación cliente de Windows
- 19. ¿Diálogo común para seleccionar un servidor SQL y obtener detalles de inicio de sesión?
- 20. devolver datos de diálogo personalizado
- 21. Uso de MembershipProvider personalizado sin un control de inicio de sesión en ASP.NET
- 22. usando el matraz de inicio de sesión con postgresql
- 23. Usando HTTP POST para formularios de inicio de sesión
- 24. ¿Cómo autenticar facebook sdk sin página de diálogo de inicio de sesión?
- 25. Validación de cuadro de diálogo personalizado Wix
- 26. ¿Está probando una aplicación de Facebook Connect usando Selenium?
- 27. Depuración e inicio de sesión Levante usando SBT
- 28. Teclado de iPhone personalizado
- 29. Autenticación Ajax sin dejar que aparezca el diálogo de inicio de sesión del navegador
- 30. Iniciar sesión con FB Connect/Google OAuth en .NET
Cuando dice que el loginDialog es horrible, ¿quiere decir que la pantalla está desordenada porque los usuarios tienen que desplazarse para encontrar los campos de texto? Si es así, hay una solución alternativa para que la pantalla del inicio de sesión se vea bonita, es decir, que se ajuste a toda la pantalla sin necesidad de desplazarse. – Raja
@Raja ¿Tiene un enlace a información sobre esa solución? –
@Raja: me refiero a horrible en el sentido de que se ve exactamente como lo que es, un UIWebView incrustado en la parte superior de una caja de luz a medio cocer que rompe un poco todo tipo de interfaz personalizada que quizás desee poner en su propia aplicación. – boliva