Desarrollo de Facebook en localhost

177

Solo quería saber si hay alguna forma de desarrollar aplicaciones de Facebook en localhost.

Abhishek
fuente

Respuestas:

246

Editar: 15-15-2012 Así es como se usa la autenticación FB para un sitio web localhost.

Me parece más escalable y conveniente configurar una segunda aplicación de Facebook. Si estoy construyendo MyApp, haré un segundo llamado MyApp-dev.

  • Cree una nueva aplicación en https://developers.facebook.com/apps
  • (Nuevo 15/02/2012) Haga clic en la Websitecasilla de verificación bajo 'Seleccione cómo se integra su aplicación con Facebook' (en la versión reciente de Facebook puede encontrar esto en Configuración> Básico> Agregar plataforma - Luego seleccione el sitio web)
  • Establezca el campo URL del sitio ( NO el campo Dominios de la aplicación ) en http: //www.localhost: 3000 (esta dirección es para Ruby on Rails, cambie según sea necesario)

ingrese la descripción de la imagen aquí

  • En el inicializador de su aplicación, ingrese el código para detectar el entorno
    • Código de ejemplo de Rails 3
      if Rails.env == 'desarrollo' || Rails.env == 'prueba'
        Rails.application.config.middleware.use OmniAuth :: Builder do
          proveedor: facebook, 'DEV_APP_ID', 'DEV_APP_SECRET'
        final
      más
        # Producción
        Rails.application.config.middleware.use OmniAuth :: Builder do
          proveedor: facebook, 'PRODUCTION_APP_ID', 'PRODUCTION_APP_SECRET'
        final
      final
      

Prefiero este método porque una vez que está configurado, los compañeros de trabajo y otras máquinas no tienen configuración adicional.

Eric Hu
fuente
3
+ 1ed ¡Esto es extraño! La gente dice que no puedes agregar el localhost como la URL de tu aplicación. Pero simplemente funciona para mí. ¡Gracias!
Keyne Viana
15
¿Sigue siendo el caso para ti? Parece que no puedo agregar localhost, o 127.0.0.1:5000 o algo similar al dominio de mi aplicación para Facebook.
Pete
Intenté crear uno nuevo y me encontré con un problema de "dominio no válido". Gracias por la captura
Eric Hu
1
@zoltarSpeaks Vea mi respuesta actualizada. Tienes que usar un campo diferente, no "dominio de aplicación"
Eric Hu
1
¿esto anulará los inicializadores / config.omniauth de idear.rb: facebook, 'APP_KEY', 'APP_SECRET',: scope => "email, offline_access .."?
desaparecido
26

Por supuesto que puede, simplemente agregue la url localhost (sin "http") en su app_domain y luego agregue su site_url http://localhost(con http)

Actualizar

Facebook cambia las cosas un poco ahora, solo ve a la configuración de la aplicación y en la URL del sitio solo agrega http: //localhosty deja el dominio de la aplicación vacío

stalin
fuente
Esto funciona totalmente. No hay necesidad de nada de nuestro lado de la cerca.
godspeedelbow
10
Esto ya no funciona, obtienes el error, no puedes agregar dominios de nivel superior
Josh Bedo
20

Aquí está mi configuración y funciona bien para la API de PHP:

dominio de aplicación

   http://localhost

Sitio URL

   http://localhost:8082/
tradmed
fuente
1
tuvo que completar ambas entradas de texto para que localhost funcione
paulruescher
19

NOTA: A partir de 2012, Facebook permite el registro de "localhost" como URL de retorno. Es posible que aún necesite una solución alternativa similar para otros proveedores (es decir, Microsoft one).

Si necesita un nombre de dominio real registrado en Facebook (como my.really.own.domain.com), puede redirigir localmente las solicitudes a este dominio a su máquina. El enfoque más fácil de usar en cualquier sistema operativo es cambiar el archivo "hosts" para asignar el dominio a 127.0.0.1 (consulte http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAA y https: / /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file ).

Usualmente uso Fiddler para hacerlo por mí (en Windows con IIS local). Vea ejemplos en http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp .

if (oSession.HostnameIs("my.really.own.domain.com")) {
   oSession.host="localhost:80";
}

El enfoque de archivos de hosts de los enfoques no funciona con Visual Studio Development Server ya que requiere que las URL entrantes sean localhost / 127.0.0.1. Si necesita trabajar con él (o posiblemente con IIS express) para anular el host: uso de Fiddler con IIS7 Express

Alexei Levenkov
fuente
9

Facebook ya no permitió una URL de devolución de llamada 'localhost' para aplicaciones de Facebook FBML

Sudantha
fuente
asegúrese de que en su configuración de seguridad de Facebook, tenga 'Navegación segura' desactivada. Esto hará que su host local no esté disponible si está habilitado.
supajb
9

Con el nuevo centro de desarrollo ahora es más fácil:

1) Deje en blanco los dominios de la aplicación.
2) Haga clic en Agregar plataforma
3) La URL del sitio debe ser igual a la ruta completa de su host local.
4) Guardar cambios

JSV
fuente
1
Verificado, esta es la mejor manera de realizar una instalación localhost. Simplemente inserte la URL base en su entorno de desarrollo como se indica arriba, sin http: // y Facebook lo agregará por usted. Cosas simples! Gracias Jay
keade
1
Esa solución resolvió mi problema cuando se ejecuta en localhost
Rola
8

Acabo de descubrir una solución alternativa: puede hacer que su máquina local sea accesible utilizando http://localtunnel.com . Deberá cambiar (temporalmente) algunas URL utilizadas en el código / html de su aplicación para que los enlaces apunten al dominio temporal, pero al menos Facebook puede llegar a su máquina.

Martin T.
fuente
7

En la configuración básica de su aplicación ( https://developers.facebook.com/apps ) en Configuración-> Básico-> Seleccione cómo se integra su aplicación con Facebook ...

Use "URL del sitio:" y "URL del sitio móvil:" para guardar sus URL de producción y desarrollo respectivamente. Ambos sitios podrán autenticarse. Solo estoy usando Facebook para la autenticación, así que no necesito ninguna de las funciones de redirección de sitios móviles. Por lo general, cambio la "URL del sitio móvil:" a mi sitio "localhost: 12345" mientras estoy probando la autenticación, y luego la vuelvo a la normalidad cuando termine.

Carter Medlin
fuente
5

Ahi esta ! Mi solución funciona cuando creas una aplicación, pero quieres usar la autenticación de Facebook en tu sitio web. Esta solución a continuación NO es necesaria cuando desea crear una aplicación integrada en la página FB.

La cuestión es que no puede poner "localhost" como dominio en la página de configuración de Facebook de su aplicación. Razones de seguridad ?

Debe ir a su archivo de host, en OSX / Linux, etc / hosts y agregar la siguiente línea: 127.0.0.1 dev.yourdomain.com

El dominio que pones lo que quieras. Un error es agregar esta línea: localhost dev.yourdomain.com (al menos en osx snow leopard no funciona).

Entonces tienes que borrar tu caché dns. En OSX: escriba dscacheutil -flushcache en la terminal. Finalmente, regrese al sitio web en línea para desarrolladores de Facebook, y en la página de configuración de su aplicación, puede agregar el dominio "dev.yourdomain.com".

Si usa un programa como Mamp, Easyphp o lo que sea, asegúrese de que el puerto para Apache sea 80.

Esta solución debería funcionar para Windows porque también tiene un archivo de hosts. Sin embargo, hasta donde recuerdo Windows 7 ya no usa este archivo, pero este truco debería funcionar si encuentra una manera de obligar a Windows a usar un archivo hosts.

MartinL
fuente
funciona para win8.1 c: \ windows \ system32 \ drivers \ etc \ hosts. Es posible que necesite vaciar 'Host resolver caché' en chrome URL = chrome: // net-internals / # dns
rnrneverdies
5

Tienes que elegir el producto de Facebook 'inicio de sesión de Facebook' y habilitar el inicio de sesión de Client OAuth, 'Web OAuth Login' y 'Embedded Browser OAuth Login', incluso si das la URL localhost Funcionará ingrese la descripción de la imagen aquí

Abhinav bhardwaj
fuente
Esto ayudó a avanzar el problema. Mensaje del FB a partir del 23/02/2018: en marzo, realizaremos una actualización de seguridad de la configuración de su aplicación que invalidará las llamadas de URI que no figuran en el campo URI de redireccionamiento de OAuth válido a continuación. Esta actualización se produce en respuesta a actividad maliciosa que vimos en nuestra plataforma, y ​​queremos proteger su aplicación o sitio web al requerir un nuevo modo estricto para redirigir los URI.
Tim Tyler
1
Fb ahora requiere https para la devolución de llamada. Localhost no es compatible con https.
huuthang
1
@huuthang, por lo que todo este Q / A está en desuso.
RGB
3

Creo que debería poder desarrollar aplicaciones utilizando el servidor web de desarrollo de Visual Studio: Inicie una nueva aplicación FaceBook en: http://www.facebook.com/developers/ . Luego, configure los ajustes para la URL del sitio y la url del lienzo para la instancia en ejecución de su sitio web, por ejemplo: http: // localhost: 1062 /

Aquí hay un par de enlaces que deberían ayudarlo a comenzar con FaceBook:

  1. http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development/ ,
  2. http://nagbaba.blogspot.com/2010/05/experiencing-facebook-javascript-sdk.html ,
  3. http://apps.facebook.com/thinkdiffdemo/

Espero que esto ayude.

Vasile Laur
fuente
3

Prueba esto ---

https://www.facebook.com/help/community/question/?id=589302607826562

1 - Haga clic en Aplicaciones y luego seleccione su aplicación.

2 - Haga clic en el botón Configuración en el lado izquierdo de la pantalla.

3 - En la configuración básica, haga clic en el botón Agregar plataforma debajo de la configuración de configuración.

4 - Seleccione Sitio web en el cuadro de diálogo de la plataforma.

5 - Ingrese su URL (localhost funciona aquí).

6 - En la entrada de texto Dominios de la aplicación, agregue su dominio que coincida con el de la URL.

7 - Guarde su configuración.

Snm Maurya
fuente
2

Supongamos que ha registrado su aplicación como:

app.domain.com

Solo necesita modificar el archivo / etc / hosts agregando

127.0.0.1 dev01.app.domain.com

Luego, modifique su configuración de apache

ServerName dev01.app.domain.com

y reiniciar apache.

Deberá poner su URL en una variable para usarla como parámetro XML en algunas llamadas:

<fb:login-button registration-url="http://<?=$URL?>/register" />
Juan Eduardo Castaño Nestares
fuente
2

No tengo suficiente crédito para comentar sobre la respuesta más votada, pero al menos en mi entorno de rieles (ejecución 4), rails s está en http://localhost:3000, no http://www.localhost:3000. Cuando lo cambié a http://localhost:3000, funcionó bien. No es necesario editar ningún archivo de hosts.

Andrew Shenstone
fuente
2

app domain : localhost

site URL : http://localhost:4440/

trabajó para mí con la nueva interfaz de usuario.

sftsz
fuente
0

Mi solución funciona bien en localhost ..... Para el uso de URLS del sitio http://localhost/ y para el uso de dominios de aplicaciones localhost/folder_name Descansar todo es igual ....... funciona bien (aunque muestra la bandera roja en App Domain..App funciona bien)

fabuloso
fuente
0

Es fácil ir al panel de la aplicación en la pestaña de inicio de sesión de Facebook, haga clic en configuración y luego seleccione Aplicar HTTP No, guardar configuracióningrese la descripción de la imagen aquí

Jerome Blacq
fuente
0

La aplicación se ejecutará bien en localhost: 3000, solo necesita especificar la dirección https en la que la aplicación estará activa cuando esté en modo de producción.
La opción 2 es proporcionar la url o su sitio web heroku que le permite tener una aplicación de muestra en modo de producción.

ingrese la descripción de la imagen aquí

vidur punj
fuente
0

Última actualización: no tiene que dar ninguna URL si la está probando en desarrollo. Puedes dejar los campos vacíos. Asegúrese de que su aplicación esté en modo de desarrollo. Si no, apague el estado de live.

No es necesario proporcionar la URL del sitio, los dominios de las aplicaciones o la redirección válida oauth uri.

ingrese la descripción de la imagen aquí

Vigneshwaran Sivalingam
fuente
1
Tenga en cuenta que si cambia su aplicación de "en vivo" a "desarrollo", podrá iniciar sesión desde localhost en la máquina de desarrollo, pero TODOS SUS USUARIOS EN VIVO ya NO podrán iniciar sesión.
webdevbyjoss
Hice esto y todavía me dio el error y el botón fb no apareció
joslinm
Después de crear la aplicación, haga clic en el botón "Crear aplicación de prueba" para obtener una aplicación solo para desarrollo / prueba. Todavía necesitaba agregar "localhost" a los dominios de la aplicación.
Ninguno
@ J.Money Creo que podría ser cambiado por ahora. Gracias por hacérmelo saber.
Vigneshwaran Sivalingam