Respuestas:
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.
Website
casilla 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)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.
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: //localhost
y deja el dominio de la aplicación vacío
Aquí está mi configuración y funciona bien para la API de PHP:
dominio de aplicación
http://localhost
Sitio URL
http://localhost:8082/
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
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
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.
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.
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.
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á
Esto funciona en junio de 2018, incluso después del requisito HTTPS. Parece que una aplicación de prueba no requiere https:
cree una aplicación de prueba: https://developers.facebook.com/docs/apps/test-apps/
luego, dentro de la aplicación de prueba, siga los sencillos pasos en este video: https://www.youtube.com/watch?v=7DuRvf7Jtkg
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:
Espero que esto ayude.
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.
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" />
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.
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.
Ú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.