Como testar o Facebook Connect localmente


193

Eu uso as APIs ASP .NET e Facebook Connect. mas quando executo o aplicativo e pressiono o botão Conectar, ele retorna ao site e não ao servidor local de teste ( http: // localhost: xxxx / test.aspx ). Como posso testar o Facebook localmente (por exemplo, como posso alterar o URL de retorno de chamada)?


4
A resposta está aqui: forum.developers.facebook.com/viewtopic.php?pid=116136 você deve editar o arquivo 'C: \ WINDOWS \ system32 \ drivers \ etc \ hosts' para fazer com que seu domínio chegue ao seu localHost
— Haytham

101
Este sistema parece ter sido mal implementado por parte do Facebook. Não parece ter ocorrido a eles que alguém iria querer testar o recurso, exceto em um servidor ativo. As duas soluções fornecidas aqui - editar o arquivo de hosts locais para falsificar o servidor de produção e redirecioná-lo para o localhost, e alterar temporariamente a URL de produção ao vivo no Facebook para localhost, são um design notavelmente ruim da parte do Facebook. O Facebook precisa adicionar algum tipo de capacidade de teste ao seu sistema.
— Paul Legato 13/10

2
Bem, uma solução é ter três aplicativos -> ao vivo, controle de qualidade e desenvolvimento. Portanto, se seu aplicativo principal é apps.facebook.com/ohnice/ QA e dev pode ser apps.facebook.com/ohnice_qa_sd/ é apps.facebook.com/ohnice_dev_fg/ sim algo aleatório, para que você não tenha visitantes indesejados em sua casa não é arrumado.
— tgkprog

1
@PaulLegato está feito agora (depois de anos ...). Veja minha solução ou uma das soluções usando o recurso de teste.
— Erdal G.

Respostas:


236

É bastante simples quando você descobre.

Abra /etc/hosts(unix) ou C:\WINDOWS\system32\drivers\etc\hosts.

Se seu domínio for foo.com, adicione esta linha:

127.0.0.1    local.foo.com

Quando você estiver testando, abra local.foo.comno seu navegador e ele deve funcionar.


4
Para editar o arquivo hosts do MAC, em seguida, executar "sudo pico / private / etc / hosts" em seu terminal, editar e pressione "Ctrl X" para salvar
— Christoffer

@Christoffer: Eu acredito que / private / etc é apenas um link simbólico para / etc, então / etc / hosts e / private / etc / hosts são o mesmo arquivo.
— Freeall

1
Você está certo ... mas alguns de nós precisam dar uma colher e dizer "abrir / etc / hosts" simplesmente não é suficiente;) O FB ainda está falhando localmente com esta solução para mim. Eu não estou usando o facebook JS
— Christoffer

5
isso costumava funcionar para mim até recentemente, mas agora estou recebendo uma connection refusedexceção ao tentar fazer login, provavelmente devido a uma alteração no lado do facebook. quaisquer idéias de uma solução alternativa são muito apreciadas.
— 11133 onurmatik

1
Se você estiver fazendo isso para acessar um aplicativo Rails em execução local, poderá ter de visitar local.foo.com: 3000` no seu navegador, pois os aplicativos Rails geralmente são executados nessa porta.
— David Tuite

102

Edite seu aplicativo em www.facebook.com/developers/ e defina o "URL do site" como "http: // localhost / myapppath".

Quando terminar - mude de volta.


19
O Facebook não "se conecta" ao seu servidor. O JS deles faz. E o JS é executado no contexto do seu navegador. Que sabe para onde "localhost" aponta.
— 22412 Alex

Não me permitia adicionar " site local ", eu tinha que ter certeza de que havia um ponto lá. Isso funcionou: " local.site "
— Pete

Alguns recursos do FB não funcionam com isso. Por exemplo - salve conquistas nos servidores FB. Ele quer HTTPS, assim que meu truque localhost não está funcionando :(
— Kostadin

2
vale a pena notar que a validação no formulário do aplicativo exige que você use o host local no URL, por exemplo, em http://localhost/myappvez dehttp://myapp
— graham

1
se você usar outra porta, use este padrão: localhost: xxxx ), por exemplo: localhost: 8080
— m0z4rt

77

Sugiro a criação de um aplicativo de teste (apenas para o ambiente de desenvolvimento) em https://developers.facebook.com/apps e defina: Website with Facebook Loginproperty para as configurações localhost: [port] .
essa opção funcionará bem sem a necessidade de alterar os hosts.
lembre-se de alterar o appId novamente para o seu aplicativo de produção assim que for lançado.

Editar - na versão mais recente do fb, você a encontrará na settingsguia. insira a descrição da imagem aqui


2
Ou apenas use arquivos de configuração separados para, dev, teste e live.
— Chris Barry

1
Não é mais possível encontrar o "site com login no Facebook".
— yehe

5
Parece que você precisa clicar no botão horizontal cinza grande "+ Adicionar plataforma". Lá você tem "Website"
— Luciano

75

O Facebook adicionou o recurso de versões de teste.

Primeiro, adicione uma versão de teste do seu aplicativo: Criar aplicativo de teste

Criar aplicativo de teste

Em seguida, altere o URL do site para " http: // localhost " em Site e pressione Salvar alterações.

insira a descrição da imagem aqui

Isso é tudo, mas tenha cuidado: as chaves ID do aplicativo e Segredo do aplicativo são diferentes para o aplicativo e suas versões de teste!


o que é domínio de aplicativo no painel de configurações. Estou desenvolvendo aplicativo iônica com login facebook
— Chirag Thaker

1
@Chiragthaker É o domínio onde será hospedado o aplicativo de produção
— Erdal G.

3
Essa é uma resposta muito melhor no meu caso, do que editar o hostsarquivo, porque não requer o uso de HTTPS no meu servidor de teste.
— Petr Dlouhý

39

Você não precisa fazer nada difícil!

Facebook → Configurações → Básico:
escreva " localhost " no campo " App Domains" e clique em " + Add Platform ", escolha " Web Site " .

Depois disso, na " URL do site " campo de escrever o seu url localhost
(por exemplo: http://localhost:1337/something).

Isso permitirá que você teste seus plugins do facebook localmente.


1
existe uma solução alternativa para arquivos no arquivo de caminho: /// android_assets / www? facebook não vai permitir que esse caminho para a url do site
— Vignesh Subramanian

deve ser https agora
— Simon_Weaver

@Simon_Weaver De onde você obteve essas informações? está documentado em algum lugar?
— Kolistivra


@Simon_Weaver a partir desse link que você enviou: "Você ainda poderá usar HTTP com endereços" localhost ", mas apenas enquanto o aplicativo ainda estiver no modo de desenvolvimento."
— Kolistivra

5

O Facebook aparentemente desativa aleatoriamente a capacidade de definir o host local como um domínio em seu aplicativo do Facebook. Achei que a solução mais fácil era encapsular meu host local para a web. Isso pode ser feito gratuitamente usando http://progrium.com/localtunnel/ ou com um URL personalizado (mais fácil, pois você não precisa alterar o URL sempre no facebook) https://showoff.io


3
outra opção de túnel é ngrok.com
— Mohamed Selim

3

Não pude usar as outras soluções ... O que funcionou para mim foi instalar o LocalTunnel.net (https://github.com/danielrmz/localtunnel-net-client) e depois usar o URL resultante no Facebook.


1

Parece que o FB mudou a página de desenvolvimento do aplicativo novamente e adicionou um recurso chamado "Lista de permissões de IP do servidor".

  1. Vá para o seu aplicativo e selecione Configurações -> Guia Avançado
  2. Obtenha seu IP público (o Google informará se você pesquisar "O que é meu IP")
  3. Adicione seu IP público à lista de permissões de IP do servidor e clique em Salvar alterações na parte inferior

e se vários desenvolvedores de locais diferentes estiverem trabalhando no site? Usamos VM (Vagrant) para que o IP seja o mesmo para todos os desenvolvedores. Infelizmente, o facebook não permite o uso de IPs locais na lista de permissões. Isso não funciona.
— problema foi

Se estou lendo seu comentário corretamente, isso não deve ser um problema. Você precisa inserir seu IP público, que você diz ser o mesmo para cada desenvolvedor (você quis dizer NÃO é o mesmo). Se você tiver vários desenvolvedores em sites diferentes com IPs diferentes, poderá usar uma VPN para rotear todo o tráfego por 1 IP.
— sevensevens

não, o IP público de máquinas diferentes em locais diferentes não é, obviamente, o mesmo, apenas o IP local em cada máquina é o mesmo. (por exemplo, localhost). Não quero encaminhar nada. Por enquanto, estou usando o localhost (apenas um exemplo) no aplicativo FB - que funciona bem. Mas preciso de uma solução assim que a página for publicada. O Facebook permite criar "Test-Apps" dentro de um aplicativo, que pode ser a solução, mas ainda não o tentei. EDIT: Parece que é a solução
— ProblemsOfSumit

1

vá para a página da tela. visualize-a no navegador. copie o texto da barra de endereço. agora vá para o seu aplicativo do facebook, vá para editar configurações

no site, no URL do site cole esse endereço

na integração do facebook, cole novamente o endereço no URL da tela

e também o mesmo código sempre que você precisar de um URL de tela ou de redirecionar.

espero que ajude ..


-6

Crie 2 aplicativos e

Em /initializers/env_variables.rb

if Rails.env == 'development'
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
else
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
end
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.