Estoy planeando conectarme al chat de Facebook desde mi localhost. Necesitaré obtener la clave de sesión de Facebook. Cuando le doy a la URL del sitio como localhost:8080
o ip-address:8080
no funciona.
Leí sobre la configuración de dos aplicaciones con 2 claves API diferentes, una se ejecuta en dev m / cy otra en localhost, pero no lo entendí del todo.
¿Alguien puede explicar cómo ejecutar una aplicación de Facebook en localhost?
facebook
localhost
facebook-chat
entusiasta
fuente
fuente
Respuestas:
Escribí un tutorial sobre esto hace un tiempo.
El punto más importante es la "URL del sitio":
Donde la estructura de la carpeta es algo como:
EDITAR:
Kavya : ¿cómo reconoce el servidor FB mi localhost incluso sin una IP o puerto?
No creo que esto tenga nada que ver con Facebook, supongo que dado que el
src
parámetro iframe se carga desde el lado del cliente, tratará su URL local como si la pusiera directamente en su navegador.Por ejemplo, tenga un archivo en su servidor en línea con contenido (p
online.php
. Ej. ):Y en su directorio raíz localhost, tenga el archivo
test.php
:¡Ahora visite
http://your_domain.com/online.php
y verá el contenido de su archivo localhost!¡Esta es la razón por la que las suscripciones en tiempo real y las devoluciones de llamada desautorizadas (solo por mencionar) no funcionarán con las URL de localhost! porque Facebook hará ping (enviará solicitudes http) a estas URL, pero obviamente el servidor de Facebook no traducirá esas URL a las suyas.
fuente
http://localhost:8080/auth/index.html
y la página web que da el error eshttp://localhost:8080/auth/index.html
y la línea channelurl es:channelUrl : '//localhost:8080/auth/channel.html',
si usa localhost:
en Facebook -> Configuración -> Básico, en el campo "Dominios de la aplicación" escriba "localhost", luego haga clic en "+ Agregar plataforma", elija "Sitio web",
creará dos campos "URL del sitio móvil" y "URL del sitio", en "URL del sitio" escriba nuevamente "localhost".
funciona para mi.
fuente
También puede editar el archivo 'hosts' y crear una variación local de su dominio.
Ejemplo
Si la dirección real de su aplicación de Facebook es "example.com", puede crear el dominio "localhost.example.com" (accesible solo desde su PC) en su archivo "hosts" apuntando a "localhost" y ejecutar su sitio web local bajo este dominio. Puedes engañar a Facebook de esta manera.
fuente
C:/Windows/System32/drivers/etc/hosts
o en Ubuntu en/etc/hosts
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 ...
Utilice "URL del sitio:" y "URL del sitio móvil:" para guardar sus URL de producción y desarrollo. Ambos sitios podrán autenticarse. Solo estoy usando Facebook para la autenticación, por lo 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 vuelvo a la normalidad cuando termino.
fuente
2013 agosto. Facebook no permite configurar un dominio con puerto para una aplicación, como por ejemplo "localhost: 3000".
Por lo tanto, puede usar https://pagekite.net para acceder
localhost:port
al dominio adecuado.Los desarrolladores de Rails pueden utilizar http://progrium.com/localtunnel/ de forma gratuita.
fuente
Así que hice que esto funcionara hoy. Mi URL es
http://localhost:8888
. El dominio que le di a Facebook es localhost. Pensé que no estaba funcionando porque estaba tratando de extraer datos usando elFB.api
método. Seguí obteniendo un nombre "indefinido" y una imagen sin fuente, por lo que definitivamente no tenía acceso al gráfico.Más tarde me di cuenta de que mi problema era en realidad que solo estaba pasando un primer argumento de
/me
toFB.api
y no tenía un token. Por lo tanto, deberá usar laFB.getLoginStatus
función para obtener un token, que debe agregarse al/me
argumento.fuente
simplemente especifique su URL de lienzo como http: // localhost / app_path .
fuente
Ok, no estoy seguro de qué pasa con estas respuestas, pero le haré saber lo que funcionó para mí según lo aconsejado por un desarrollador senior en mi trabajo. Estoy trabajando en Ruby on Rails y usando el código JavaScript de Facebook para obtener tokens de acceso.
Problema: para realizar la autenticación, Facebook toma la URL de su barra de direcciones y la compara con lo que tiene en el archivo. No te permiten usarlos
localhost:3000
por cualquier motivo. Sin embargo, puede utilizar un nombre de dominio completamente inventado,yoursite.dev
por ejemplo, ejecutando un servidor local y apuntandoyoursite.dev
hacia127.0.0.1:3000
o hacia donde apuntaba su host local .Paso 1 : instala o actualiza Nginx
$ brew install nginx
(instalar) o$ brew upgrade nginx
(actualizar)Paso 2 : abre tu archivo de configuración nginx
/usr/local/etc/nginx/nginx.conf
(generalmente aquí)/opt/boxen/config/nginx/nginx.conf
(si usa Boxen)Paso 3 Agrega este código en tu
http {}
bloqueReemplácelo
proxy_pass
con el lugar al que desee señalaryoursite.dev
. En mi caso estaba reemplazando localhost: 3000 o el equivalente127.0.0.1:3000
Paso 4 : Edite su archivo de hosts, en
/etc/hosts
Mac para incluirEste archivo dirige los dominios a localhost. Nginx escucha en localhost y redirige si coincide con una regla.
Paso 5 : Cada vez que use su entorno de desarrollo en el futuro, use
yoursite.dev
en la barra de direcciones en lugar delocalhost:3000
para que Facebook lo registre correctamente.fuente
Forward es una gran herramienta para ayudar con el desarrollo de aplicaciones de Facebook localmente, es compatible con SSL, por lo que el certificado no es un problema.
https://forwardhq.com/in-use/facebook
DESCARGO DE RESPONSABILIDAD: Soy uno de los desarrolladores
fuente
Necesita configurar su aplicación para que se ejecute sobre https para localhost
Puede seguir los pasos dados en esto para configurar HTTPS en ubuntu
https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-12-04
Debe seguir los siguientes pasos:
instalar apache (si no lo tiene)
Paso uno: active el módulo SSL
Paso dos: crear un directorio nuevo
Paso tres: cree un certificado SSL autofirmado
Con este comando, crearemos el certificado SSL autofirmado y la clave del servidor que lo protege, y colocaremos ambos en el nuevo directorio. La línea más importante es "Nombre común". Ingrese su nombre de dominio oficial aquí o, si aún no tiene uno, la dirección IP de su sitio.
Paso cuatro: configurar el certificado
Encuentra las siguientes líneas y edítalas con tu configuración
Paso cinco: active el nuevo host virtual
fuente
Un truco:
Utilice MAMPPRO y cree: nombre del servidor: la dirección EXACTA de su sitio web (por ejemplo: helloworld.com) a su sitio en su disco
En Facebook: para que también pueda mantener la URL del sitio original (por ejemplo: helloworld.com)
¡Ahora entiende que cuando escribe su sitio web en la barra de direcciones, está en local ! .. y cuando quiera estar en línea, simplemente inactive el servidor en MAMP PRO ..
:)
fuente
Ninguna de las respuestas anteriores funcionó para mí. Estoy ejecutando FB API 2.5. El mío fue una combinación de problemas que conducen al éxito una vez resueltos
Probablemente no sea ideal ya que el cambio de IP dinámica y probablemente se podría usar DynDNS o algo similar para hacer que la IP sea más "estática", pero funcionó para mí.
fuente
En mi caso, el problema reveló que Chrome bloquea la solicitud CORS de localhost: 4200 al sitio web de la API de Facebook. Ejecutar Chrome con esta configuración: "YOUR_PATH_TO_CHROME \ Google \ Chrome \ Application \ chrome.exe" --disable-web-security --user-data-dir = "c: / chrome funcionó de maravilla durante el desarrollo. Incluso sin localhost agregado a la configuración de la aplicación de Facebook.
fuente