2010-05-03 4 views
9

Para un sistema de middleware con internet (que funciona dentro de un set-top box) Quiero desarrollar una interfaz primitiva de Facebook donde los usuarios puedan escribir sus nombres de usuario y contraseña, mostrando sus últimas notificaciones, mensajes y otros cosas en la pantalla del televisor utilizando el reciente Facebook Graph API.Facebook Open Graph sin navegador

Este programa de middleware utiliza Java ME para ejecutar programas (como esta sencilla aplicación de Facebook) y se puede conectar a Internet sin embargo, no tiene un navegador web real. Sin navegador puede conectarse a cualquier url para recuperar la respuesta JSON, sin embargo, no estoy seguro de cómo lograr la autenticación sin un navegador real.

En estas circunstancias, ¿es posible la autenticación de Facebook? Si lo crees, ¿qué enfoque sugerirías?

Gracias

Respuesta

0

De acuerdo con esta documentación en "Desktop Application Authentication" No creo que el resultado deseado es posible:

aplicación de Facebook OAuth no incluye el soporte de aplicaciones de escritorio explícita. Sin embargo, si su aplicación de escritorio puede incorporar un navegador web, puede agregar fácilmente el soporte de Facebook a su aplicación utilizando el mismo flujo de agente de usuario de OAuth utilizado por los clientes de JavaScript.

Sin embargo, es claramente posible que ciertos proveedores hacer esto, ya que Xbox 360 de Microsoft aplicación de Facebook hace exactamente lo que usted propone. Me interesaría ver si alguien ha desenterrado alguna API para hacer esto que Facebook no quiere en su documentación más obvia.

+0

Microsoft tiene un porcentaje de participación en Facebook. Otra consola principal (supuestamente) también tiene un sdk dedicado, pero no lo he visto. –

+0

@Chris, sospecho que la ganancia potencial para Facebook tiene más que ver con la de Microsoft [1.6% de participación] (http://en.wikipedia.org/wiki/Facebook#History) – Nicole

0

Esto no es una respuesta, pero estoy tratando de hacer lo mismo. Echa un vistazo a el blog de este tipo que utiliza otro servidor proxy las solicitudes: cory wiles blog

Si te diste cuenta por favor una respuesta detallada aquí para que pueda hacerlo a .. :)

0

Creo que es posible aunque es bastante complicado y está sujeto a cambios repentinos de la interfaz de Facebook. Podría romper el acuerdo entre usted y Facebook.

Lo que debes hacer es emular Facebook.

Una ruta que debe configurar una aplicación de Facebook. Una vez que obtuviste la autorización del usuario, puedes hacer algo con Graph API.

Necesita el proceso de inicio de sesión y autorización de Facebook. Hay algunas herramientas de captura en la solicitud y respuesta http/https. Analícelos, tanto en el encabezado como en el cuerpo.

Una vez que conozca el mecanismo de autorización, puede reemplazarlo por su cuenta. Todo lo que sigue está en Graph API.

Otra ruta es emular el inicio de sesión de Facebook y el proceso de notificación. La captura y el análisis son necesarios.

0

En el pasado he usado una herramienta llamada screen-scraper (descripción completa: yo solía trabajar allí) para automatizar el inicio de sesión en Facebook. Básicamente, imita una sesión de navegador; le permite establecer variables de sesión (es decir, nombre de usuario, contraseña) que luego se enviarían a Facebook, como si el usuario las hubiera enviado en un navegador.

Es posible que no pueda utilizar el raspador de pantalla en su entorno de decodificador (aunque está basado en Java, por lo que es posible que funcione). Incluso si no fuera así, podría implementar una estrategia similar en Java, haciendo las llamadas HTTP que haría un navegador para cargar la página de inicio de sesión y enviar las credenciales del usuario. Para mantener segura la información del usuario, asegúrese de que la biblioteca de cliente HTTP que utilice sea compatible con HTTPS.

Proxy herramientas y extensiones como Charles, Fiddler2, Firebug, herramientas de desarrollo de Chrome, etc. son útiles para ver exactamente lo que el navegador está enviando al servidor en las solicitudes.

3

Facebook proporciona a los socios de confianza con una API de autorización privada para obtener un token de OAuth 2 de un nombre de usuario/contraseña.

Un enfoque más complicada sería hacer algo semejante a como Netflix inscribe un dispositivo:

  1. dispositivo llama servidor para obtener un Código
  2. dispositivo muestra el código en la pantalla y dirige al usuario ir a la URL en el servidor e introducir el código
  3. servidor redirige el usuario a Facebook y obtiene token de OAuth, el usuario dijo que regresara al dispositivo
  4. dispositivo llama servidor con código y obtiene token de OAuth
  5. el dispositivo ahora puede realizar llamadas directamente en nombre del usuario
+0

Esto es lo que recomendaría también: Tenga cada instancia de su dispositivo tiene algún tipo de número de serie; haga que el usuario inicie sesión en su sitio web y asocie ese inicio de sesión con el número de serie del dispositivo que tiene, luego haga que el dispositivo se comunique con su propio sitio web y proporcione la información de autenticación necesaria para acceder a la API de Facebook – Igy

+0

. estaba programando un cliente de Facebook de Smart TV. – siniradam