Estou planejando me conectar ao bate-papo do Facebook de meu host local. Precisarei obter a chave de sessão do Facebook. Quando eu dou a URL do site como localhost:8080
ou ip-address:8080
não funciona.
Eu li sobre como configurar dois aplicativos com 2 chaves de API diferentes, um executado em dev m / ce outro em localhost, mas não entendi direito.
Alguém pode explicar como executar um aplicativo do Facebook no localhost?
facebook
localhost
facebook-chat
entusiasmado
fonte
fonte
Respostas:
Escrevi um tutorial sobre isso há um tempo.
O ponto mais importante é o "URL do site":
Onde a estrutura da pasta é algo como:
EDIT:
Kavya : como o servidor FB reconhece meu host local mesmo sem um IP ou porta ??
Não acho que isso tenha algo a ver com o Facebook, acho que, como o
src
parâmetro iframe é carregado do lado do cliente, ele tratará o URL local como se você o colocasse diretamente no navegador.Por exemplo, tenha um arquivo em seu servidor online com conteúdo (por exemplo
online.php
):E no diretório raiz do seu host local, tenha o arquivo
test.php
:Agora visite
http://your_domain.com/online.php
você verá o conteúdo do seu arquivo localhost!É por isso que assinaturas em tempo real e desautorizar callbacks (só para mencionar) não funcionam com URLs de host local! porque o Facebook fará ping (enviará solicitações http) para essas URLs, mas obviamente o servidor do Facebook não traduzirá essas URLs para as suas!
fonte
http://localhost:8080/auth/index.html
e a página que dá o erro éhttp://localhost:8080/auth/index.html
e a linha channelurl é:channelUrl : '//localhost:8080/auth/channel.html',
se você usar localhost:
no Facebook -> Configurações -> Básico, no campo "Domínios de aplicativos" escreva "localhost", clique em "+ Adicionar plataforma" e escolha "Site",
ele irá criar dois campos "URL do site móvel" e "URL do site", em "URL do site" escreva novamente "localhost".
funciona para mim.
fonte
Você também pode editar o arquivo 'hosts' e criar uma variação local do seu domínio.
Exemplo
Se o endereço real do seu aplicativo do Facebook for "example.com", você pode criar o domínio "localhost.example.com" (acessível apenas do seu pc) no arquivo "hosts" apontando para "localhost" e executar seu site local sob este domínio. Você pode enganar o Facebook dessa forma.
fonte
C:/Windows/System32/drivers/etc/hosts
ou no Ubuntu em/etc/hosts
Nas configurações básicas do seu aplicativo ( https://developers.facebook.com/apps ) em Configurações-> Básico-> Selecione como seu aplicativo se integra ao Facebook ...
Use "URL do site:" e "URL do site móvel:" para armazenar seus URLs de produção e desenvolvimento. Ambos os sites terão permissão para autenticar. Estou usando o Facebook apenas para autenticação, então não preciso de nenhum dos recursos de redirecionamento de site móvel. Eu geralmente altero o "URL do site móvel:" para meu site "localhost: 12345" enquanto estou testando a autenticação e, em seguida, coloco-o de volta ao normal quando terminar.
fonte
2013 agosto. O Facebook não permite definir domínio com porta para um aplicativo, como por exemplo "localhost: 3000".
Portanto, você pode usar https://pagekite.net para criar um túnel
localhost:port
para o domínio adequado.Os desenvolvedores Rails podem usar http://progrium.com/localtunnel/ gratuitamente.
fonte
Então, eu fiz isso funcionar hoje. Meu URL é
http://localhost:8888
. O domínio que dei ao Facebook é localhost. Achei que não estava funcionando porque estava tentando extrair dados usando oFB.api
método. Continuei recebendo um nome "indefinido" e uma imagem sem fonte, então definitivamente não tive acesso ao Graph.Mais tarde, percebi que meu problema era realmente que eu estava apenas passando um primeiro argumento de
/me
paraFB.api
e não tinha um token. Portanto, você precisará usar aFB.getLoginStatus
função para obter um token, que deve ser adicionado ao/me
argumento.fonte
apenas especifique o URL da tela como http: // localhost / app_path .
fonte
Ok, não tenho certeza do que está acontecendo com essas respostas, mas direi o que funcionou para mim, conforme recomendado por um desenvolvedor sênior em meu trabalho. Estou trabalhando em Ruby on Rails e usando o código JavaScript do Facebook para obter tokens de acesso.
Problema: para fazer a autenticação, o Facebook está pegando o url da sua barra de endereços e comparando com o que eles têm em arquivo. Eles não permitem que você use
localhost:3000
por qualquer motivo. No entanto, você pode usar um nome de domínio completamente inventado, comoyoursite.dev
rodar um servidor local e apontaryoursite.dev
para127.0.0.1:3000
ou para onde seu host local estiver apontando.Etapa 1 : instalar ou atualizar o Nginx
$ brew install nginx
(instalar) ou$ brew upgrade nginx
(atualizar)Etapa 2 : Abra seu arquivo de configuração nginx
/usr/local/etc/nginx/nginx.conf
(geralmente aqui)/opt/boxen/config/nginx/nginx.conf
(se você usar o Boxen)Etapa 3 Adicione este pedaço de código em seu
http {}
blocoSubstitua
proxy_pass
por qualquer lugar para o qual você deseja apontaryoursite.dev
. No meu caso, ele estava substituindo localhost: 3000 ou equivalente127.0.0.1:3000
Etapa 4 : edite seu arquivo hosts, no
/etc/hosts
Mac para incluirEste arquivo direciona domínios para localhost. O Nginx escuta no localhost e redireciona se corresponder a uma regra.
Etapa 5 : toda vez que você usar seu ambiente de desenvolvimento, use o
yoursite.dev
na barra de endereço em vez delocalhost:3000
para que o Facebook faça seu login corretamente.fonte
Forward é uma ótima ferramenta para ajudar no desenvolvimento de aplicativos do Facebook localmente, ele suporta SSL, então a coisa certa não é um problema.
https://forwardhq.com/in-use/facebook
AVISO LEGAL: Eu sou um dos desenvolvedores
fonte
Você precisa configurar seu aplicativo para rodar em https para localhost
Você pode seguir as etapas fornecidas neste para configurar o HTTPS no ubuntu
https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-12-04
Você precisa seguir as seguintes etapas:
instale o apache (se você não tiver)
Etapa um - ativar o módulo SSL
Etapa dois - criar um novo diretório
Etapa três - criar um certificado SSL autoassinado
Com esse comando, estaremos criando o certificado SSL autoassinado e a chave do servidor que o protege, e os colocaremos no novo diretório. A linha mais importante é "Nome comum". Digite seu nome de domínio oficial aqui ou, se ainda não tiver um, o endereço IP do seu site.
Etapa quatro - configurar o certificado
Encontre as linhas a seguir e edite-as com suas configurações
Etapa cinco - ativar o novo host virtual
fonte
Um truque:
Use MAMPPRO e crie: nome do servidor: o endereço EXATO do seu site (por exemplo: helloworld.com) para o seu site em seu disco
No Facebook: para que você também possa manter o URL original do seu site (por exemplo: helloworld.com)
Agora você entende que quando você digita seu site na barra de endereços você está no local ! ..e quando quiser ficar online, basta inativar o servidor no MAMP PRO ..
:)
fonte
Nenhuma das respostas acima funcionou para mim. Estou executando o FB API 2.5. O meu foi uma combinação de problemas que levam ao sucesso, uma vez resolvidos
Provavelmente não é o ideal, pois o IP dinâmico muda e pode-se provavelmente usar DynDNS ou algo semelhante para tornar o IP mais "estático", mas funcionou para mim
fonte
No meu caso, o problema revelou ser o cromo bloqueando a solicitação CORS de localhost: 4200 para o site da API do Facebook. Executar o Chrome com esta configuração: "YOUR_PATH_TO_CHROME \ Google \ Chrome \ Application \ chrome.exe" --disable-web-security --user-data-dir = "c: / chrome funcionou perfeitamente durante o desenvolvimento. Mesmo sem localhost adicionado às configurações do aplicativo do Facebook.
fonte