2012-08-22 5 views
5

Estoy desarrollando una aplicación de pestaña de página de Facebook. Cuando configuro la URL de la pestaña de la página en la configuración de la aplicación en algo como localhost/fbapp, no funciona, ya que la pestaña de la página no es simplemente un iframe. ¿Hay alguna solución para resolver esto?cómo puedo probar mi aplicación de pestaña de página de Facebook desde localhost

EDITAR

estoy construyendo facebook pestaña con ASP.NET MVC-3.0 con fb C# SDK.

Lo que he intentado hasta ahora es modificar el archivo hosts para señalar la URL que tengo en la configuración de la aplicación a localhost (127.0.0.1). He estado probando la aplicación de Facebook de esta manera siempre, pero no funciona en la pestaña de la página de Facebook.

+1

No hay solución.Para pagetabs (autenticados y no autenticados), FB publicará una solicitud firmada en el sitio cada vez que se cargue pagetab. Puedes intentar simular esto registrando este signed_request y usarlo para HTTP_POST de tu localhost. Nota: ¡Signed_request tiene un vencimiento! –

+0

Sí, eso es lo que pensé, y estoy probando de esa manera. De hecho, quería probar el análisis de signed_request. ¡Gracias por tu ayuda! – mask8

+0

Consulte mi respuesta a continuación en el análisis rápido signed_request –

Respuesta

0

Descubrí el problema con la pestaña de la página de Facebook. Parece que no aceptan http en la pestaña de la página incluso tengo habilitado el modo de espacio aislado. Todo lo que tengo que hacer es configurar IIS para que funcione con https y ejecutar la aplicación a través del ssl. Ahora está funcionando perfectamente. Gracias a todos por toda la ayuda

+2

Es posible que tenga habilitada la "navegación segura" en la configuración de seguridad de Facebook. Las páginas/aplicaciones https solo cargarán urls https dentro del lienzo. –

+0

@AshwiniDhekane tienes razón. Tengo eso habilitado y todo lo que necesitaba ser atendido a través de https. – mask8

3

en el establecimiento de aplicación en la ficha página SET URL

http://localhost/yourpagetabdir/ 

setting on facebook

estoy usando esta configuración para mi prueba de aplicación página frmlocalhost sus obras bien de mi servidor de desarrollo ASP.Net si está utilizando IIS servidor asegúrese de que su servidor IIS permita la página en iframe.

después de esto si quieres conseguir la página-firmada, dirigida

Facebook.FacebookConfigurationSection s = new FacebookConfigurationSection(); 
       s.AppId = "AppID"; 
       s.AppSecret = "Secret"; 
       FacebookWebContext wc = new FacebookWebContext(s); 
       dynamic da = wc.SignedRequest.Data; 
       dynamic page = da.page; 
       string curpageid = page.id; 
       bool isLiked = page.liked; 
       bool isAdmin = page.admin; 
+0

esto no funciona. Sé que puedo probar la aplicación de Facebook de esta manera, pero la pestaña de la página no parece ser solo un iframe. – mask8

+0

Le está pidiendo a FB que se publique con esa configuración. –

+1

Eso no es verdad. La solicitud POST ocurre __client side__, en su navegador, y su propio navegador en su propia máquina sabe bastante bien, que localhost significa la misma máquina en la que se está ejecutando. – CBroe

0

Usando FB PHP SDK, por ejemplo, puede publicar el signed_request y analizarlo con unas pocas líneas: -

require_once ("facebook.php"); // this file comes from the SDK 
$config = array(); 
$config['appId'] = 'get_appID_from_app_menu'; 
$config['secret'] = 'get_secret_below_appID'; 
$facebook = new Facebook($config); 
$signed_request = $facebook->getSignedRequest(); 
print_r($signed_request); 

Evita ese ejemplo largo dado en el blog de FB. La buena suerte de codificación :)

+0

gracias, pero estoy haciendo con C# SDK. y sé cómo hacer esto. Solo quería probarlo en mi pestaña local de la página. – mask8

1

Pruebe a editar su archivo de hosts de manera que cuando se va a http://example.com que enlaza con su http://localhost/yourapp

es cómo hacerlo aquí:

Esto debería funcionar como entonces el iframe podría apuntar a una dirección URL válida, que en su máquina local que apunte a su contenido. Tenga en cuenta que esto no funcionará si accede a la pestaña desde otras computadoras, ya que para ellas la URL apuntaría a otra cosa (o nada, dependiendo del nombre de dominio que elija).

+0

Gracias, pero lo he intentado antes y todavía no está funcionando. Sé que esto funciona en la página de la aplicación fb, pero la pestaña de la aplicación en la página fb. – mask8

Cuestiones relacionadas