2011-03-09 22 views
17

Estoy trabajando en una pestaña de aplicación de Facebook y me gustaría utilizar la solicitud firmada paquete como se documenta aquí: http://developers.facebook.com/blog/post/462/Facebook pestaña iframe siempre vacío

Estoy intentando utilizar their example code desempaquetar la solicitud firmada que supuestamente se pasa a la pestaña, sin embargo, $_POST, $_GET y $_REQUEST siempre están vacíos.

El código exacto funciona en la página del lienzo y puedo analizar la solicitud firmada.

¿Hay algo que me falta en su reciente anuncio?

Por cierto, la aplicación no se ha publicado en el mercado, y la fanpage en la que está instalada mi pestaña es privada. ¿Eso hará alguna diferencia?

-Dientes

Respuesta

40

¡Bien, lo descubrí! Al configurar la aplicación, completé la "URL de pestaña" para que fuera "tab /" Esto hizo que la url completa en la página de pestañas "http://www.example.com/myfacebookapp/tab/" Esto tenía sentido para mí.

Aparentemente, a Facebook no le gusta esto. Después de cambiar mi "URL Tab" a "tab/index.php", la solicitud firmada comenzó a aparecer en la pestaña de la aplicación!

+0

Roca sucesivamente. Esto me ayudó justo ahora. – ceejayoz

+0

Esto lo arregló para mí. ¡Gracias! –

+0

Tienes razón, pero parcialmente. Este no es el tema de Facebook. Facebook envía una solicitud firmada a la URL que especifique en el área de desarrollador. En mi caso, inserté 'mydomain.com/tab /' como pestaña URL, pero lo que ocurre es que el marco de mi elección redirecciona 'midominio.com/tab /' a 'midominio.com/tab' (no se observa barra inclinada) Esto es GET redirigir (simplemente dicho), por lo que la solicitud firmada se pierde. En sus casos, se le redirige de una URL de barra inclinada no final a una URL con una barra inclinada que causa una pérdida de solicitud firmada. – Andreyco

4

Gracias Seth Estaba teniendo el mismo problema. Pude obtener una solicitud firmada en la aplicación página de tela y no de mi ficha de página. para mayor claridad

  1. ir a www.facebook.com/developers/~~V~~3rd
  2. clic en editar para su aplicación
  3. haga clic en la pestaña de Facebook Integración
  4. en el En la parte inferior de la sección Pestañas de página en el campo Pestaña URL, ingrese en la ruta de index.php pag. e para su página de inicio de Facebook

ex. si su página se encuentra en www.foobar.com/facebook/tab/index.php, debe poner "tab/index.php" (sin las comillas) en lugar de solo "tab /"

He estado intentando imaginar esto por días!

4

Encontré una solución: Simplemente ponga una "/" al final de la URL de la pestaña. Me gusta: "http://domain.us/facebook/tab/"

Me funcionó, háganos saber si también funciona para usted.

+0

es tan tonto que Facebook no advierte sobre eso, gracias por el consejo que ahorró mucho tiempo. – destan

8

Básicamente, el problema es que su servidor web está realizando un redireccionamiento cuando recibe la solicitud. En su caso, está redirigiendo desde http://www.example.com/myfacebookapp/tab/ a http://www.example.com/myfacebookapp/tab/index.php; en mi caso, estaba redirigiendo desde http://www.example.com/myfacebookapp/tab a http://www.example.com/myfacebookapp/tab/ (mi aplicación está integrada en .Net MVC, por lo que no tiene nombres de archivo, pero necesita esa barra al final, al parecer).

Así que la solución canónica es asegurarse de que la ruta en el campo URL de la pestaña sea la URL real, no una a la que el servidor web se redireccionará.Si el servidor web tiene que hacer una redirección, la página real es captada por GET (no POST) y no se proporciona signed_request postdata en su secuencia de comandos.

Muy frustrante; Acabo de pasar una hora y media depurando por qué mi aplicación de prueba funcionó y la de producción no. Para empeorar las cosas, sabía esta respuesta, simplemente no registraba que ese era el problema. Muy irritante!

+0

Desafortunadamente, esto no se puede hacer para las aplicaciones de Canvas, ya que deben terminar con '/' –

+0

Eso ciertamente no solía ser el caso; No lo he comprobado recientemente, pero creo que podría estar equivocado allí. –

Cuestiones relacionadas