OAuth Facebook Inicie session en Phonegap devuelve error InvalidHeader

Estoy desarrollando una aplicación con Phonegap e implementa un inicio de session de Facebook para save algunos datos utilizando user_id como reference. Estoy usando la biblioteca OAuth.io para implementar el dialog de inicio de session y todo funciona sin problemas en el browser web y en Android, pero cuando pruebo la aplicación en XCode y presiono el button de inicio de session aparece el siguiente error.

No se puede encontrar el nombre de host en el file: /// de static
código: InvalidHeader
post: no se puede encontrar el nombre de host en el file: /// de static

Mi suposition es que tiene algo que ver con que phonegap no realiza una request externa, ya que la aplicación no está alojada en un dominio sino que se ejecuta localmente … ¿algún pensamiento?

Parece que está utilizando la biblioteca oauth.js en lugar de la versión de phonegap. En su página principal "index.html", agregue la reference al file js correcto

<script src="oauth-phonegap.js"></script> 

Luego sigue las instrucciones aquí para crear tu aplicación

Tuve un problema simular usando oauth.io. Resulta que fue mi prefilter Ajax que cambió la SOLICITUD a Facebook (estaba agregando parameters al encabezado para cada request). Si este es tu problema o no, lo que tienes que hacer es comparar una PETICIÓN exitosa a Facebook con una respuesta no secreta, que te mostrará dónde van las cosas mal. Alternativamente, una aplicación de map de la página en blanco sin otro código adicional, entonces el código requerido de outh debería funcionar y será un buen punto de partida para aislar su problema.

He estado usando Phonegap 2 años antes. Aunque no me conecté a Facebook antes, me conecté a otro website por OAuth. Puedo mostrarte mi solución.

En primer lugar, debe saber cómo funciona OAuth. Puede leer OAuth 2.0 desde el website del desarrollador de Facebook u otros sitios web.

En segundo lugar, debe conocer su objective: token, uid, expires_time. Lo más importante es token.

En tercer lugar, simplemente hazlo. En 2010, soluciono este problema utilizando el complemento Phonegap Childbrowser (ahora Phonegap tiene un inAppBrowser) y un server liviano.

¿Por qué debería usar un server ligero? El server puede ayudarme a manejar la networkingirección en el service OAuth y hacer caching.

Paso 1: escribí un script para conectarme con mi server, y mi server se conecta a OAuth Service (facebook).

Paso 2: Servicio OAuth (Facebook) responde y networkingirecciona a la página de inicio de session de Facebook.

Paso 3: Después de ingresar el nombre de usuario y la contraseña, OAuth Service (Facebook) networkingirigirá a otra URL y realizará una callback con algún código o token.

Paso 4: Si obtiene el token, guárdelo y úselo para conectar el service OAuth (Facebook) si lo desea.

Cuando vi "No puedo encontrar el nombre de host en el file: /// de estático" en su descripción, sé que tal vez te confundas en OAuth. Ahora te sugiero un código del lado del server para manejarlo y hacer que tu process de OAuth sea posible.