2009-12-10 16 views
12

Estoy tratando de escribir algunas funciones de Javascript para integrarlas con la transmisión de Facebook. Sin embargo, parece que solo funcionan si los está desarrollando directamente en el servidor activo para que Facebook pueda acceder al archivo xd_receiver.htm que me piden que coloque en www.mydomain.com/xd_receiver.htm. Sin embargo, todos ustedes probablemente puedan estar de acuerdo en que es realmente importante no desarrollar en los servidores en vivo.Desarrollo de Facebook Connect JavaScript API en localhost

Aquí es lo que he probado hasta ahora:

  1. La colocación de xd_receiver.htm en el servidor en vivo y en funcionamiento mis guiones en mi servidor dev con la esperanza de que la clave de la API le indique al servidor de Facebook para buscar xd_receiver.htm en mi vida servidor ... sin suerte
  2. Registrarse en dos claves de API con Facebook: una tecla dev apuntando a 127.0.0.1 y una activa apuntando a mi sitio en vivo. La teoría aquí es que si solamente se necesitaba xd_receiver.htm localmente, entonces sería encontrarlo a través de 127.0.0.1 ... sin suerte

Alguien ha encontrado una manera de hacer esto? No pueden esperar que desarrollemos nuestras aplicaciones de Facebook puramente en vivo sin un sandbox de desarrollo.

Alguna información de fondo sobre lo que vale: usar ASP.NET con VB pero con la esperanza de usar exclusivamente Javascript.

+0

Estoy tratando de hacer casi lo mismo, simplemente usando ASP MVC. Espero que te haya ido bien! Me está volviendo loco hasta ahora: P – MedicineMan

Respuesta

10

Definitivamente es posible utilizar archivos locales xd_receiver.htm. Soy un desarrollador de aplicaciones de Facebook de oficio, y tengo docenas de ellos configurados.

Estás más cerca de la respuesta correcta con tu # 2 anterior. La forma de hacerlo es crear dos versiones de tu aplicación. Si estuviera haciendo "MiAplicación", podría tener dos URL de página de Canvas de "myapp" y "myapp-dev", y las URL de devolución de llamada correspondientes de "www.myapp.com" y "192.168.1.1". Cada uno es una aplicación separada de Facebook, con su propia clave API, etc.

apps.facebook.com/myapp iría a mi servidor en vivo, y apps.facebook.com/myapp-dev iría a mi desarrollo local máquina. Debes asegurarte de que Facebook pueda llegar a tu máquina de desarrollo, por supuesto.

Sin embargo, las cosas deberían funcionar bien desde allí. Ni siquiera necesita versiones diferentes del archivo xd_receiver.htm, ya que el contenido del archivo siempre es el mismo para cada aplicación. Siempre que su línea FB.XdComm.Server.init("/xd_receiver.htm"); apunte al archivo correcto, debería funcionar.

Gestiono las claves y rutas de acceso de API, por ejemplo en un archivo de configuración, y tengo un archivo de configuración por aplicación, ya sea una aplicación de desarrollo o de producción. Eso hace que sea más fácil generar claves y rutas correctas en las páginas de la aplicación.

Puede mantener su aplicación de desarrollo en modo de espacio aislado y hacer todo el trabajo en su máquina local.

0

La manera más simple es configurar el DNS local de tal forma que, para su recuperación de la producción, se devuelva la dirección del localhost. En Windows, puede lograrlo fácilmente con la siguiente entrada en \ windows \ system32 \ drivers \ etc \ hosts "127.0.0.1 your_production_xd_receiver_callback_url". Por supuesto, necesita ejecutar su servidor en el puerto 80. En Windows es una tarea sencilla ya que no hay concentradores de seguridad :) en el sistema UNIX debe configurarlo ya que está debajo del puerto 1024. Esta solución está probada y funciona para mí.

Cuestiones relacionadas