2012-02-28 7 views
23

Estoy construyendo una aplicación de Facebook y he notado que al intentar obtener el estado de inicio de sesión del usuario utilizando su API de Javascript, a veces aparece el error:Se negó a mostrar el documento porque la visualización está prohibida por X-Frame-Options

"Se negó a mostrar el documento porque la visualización está prohibida por X-Frame-Options".

He podido reproducir esto cada vez que pulso la página "Verificar estado de inicio de sesión" de la aplicación solo al utilizar Facebook como una página, en lugar de mi cuenta de usuario. Esto es bastante fácil de evitar ahora que sé que esto causa el problema, pero obviamente mis usuarios pueden no saber esto.

¿Hay alguna forma de determinar si el usuario usa Facebook como página o no? Desde que parece arruinar mi aplicación completa.

+0

¿Puedes confirmar si tu archivo channel.htm está funcionando como se esperaba? – DMCS

+0

posible duplicado de [Modo de detectar "Se negó a mostrar el documento porque la visualización está prohibida por X-Frame-Options". error?] (http://stackoverflow.com/questions/9106413/way-to-detect-refused-to-display-document-because-display-forbidden-by-x-frame) – balexandre

Respuesta

1

tuve este problema también, fijo con:. La aplicación se redirige al usuario a una pantalla de inicio de sesión de Facebook (cuadro de diálogo de autenticación), mientras que el usuario ya se registra en Así que cambió el código para redirigir a la página de éxito si está conectado, o al cuadro de diálogo si no está conectado.

+17

¿Cómo lo hiciste? – Himmators

+3

Si él no explica cómo lo hizo, ¿por qué recibe el cheque verde? –

0

¿Funciona este javascript?

document.write(isFacebookPage()?"YES, I'm in a Facebook Page!":"No, not a Facebook Page"); 

function isFacebookPage(){ 
    return (document.location.href.indexOf('/pages/')>0); 
} 
1

Esto es un problema cuando Facebook redirige a su aplicación desde un navegador web y luego se redirecciona al inicio de sesión de autorización de Facebook. Debe asegurarse de que el formulario reemplaza la página y no se carga en el lienzo de Facebook porque no le gusta.

Por lo que tiene que hacer una redirección limpia como tal -esto es ejemplo nodo

res.send("<script> top.location.href='"+ "https://www.facebook.com/dialog/oauth?  
client_id=*********&redirect_uri=http://apps.facebook.com/myapp" + "'</script>"); 

Mira esta página de facebook dev y su en el paso 3

https://developers.facebook.com/docs/howtos/login/server-side-login/

no parece ser un problema con las aplicaciones móviles solo en el escritorio

Cuestiones relacionadas