Desenvolvimento do Facebook no localhost

177

Só queria saber se existe alguma maneira de desenvolver aplicativos do Facebook no localhost.

Abhishek
fonte

Respostas:

246

Edit: 15-02-2012 Isto é como usar a autenticação FB para um site localhost.

Acho mais escalável e conveniente configurar um segundo aplicativo do Facebook. Se eu estiver criando o MyApp, criarei um segundo chamado MyApp-dev.

  • Crie um novo aplicativo em https://developers.facebook.com/apps
  • (Novo em 15/2/2012) Clique na Websitecaixa de seleção em 'Selecionar como seu aplicativo se integra ao Facebook' (na versão recente do Facebook, você pode encontrar isso em Configurações> Básico> Adicionar plataforma - e selecione o site)
  • Defina o campo URL do site ( NÃO o campo App Domains ) como http: //www.localhost: 3000 (este endereço é para Ruby on Rails, altere conforme necessário)

insira a descrição da imagem aqui

  • No inicializador do aplicativo, insira o código para detectar o ambiente
    • Código de exemplo do Rails 3
      se Rails.env == 'desenvolvimento' || Rails.env == 'teste'
        Rails.application.config.middleware.use OmniAuth :: Builder do
          provedor: facebook, 'DEV_APP_ID', 'DEV_APP_SECRET'
        fim
      outro
        # Produção
        Rails.application.config.middleware.use OmniAuth :: Builder do
          provedor: facebook, 'PRODUCTION_APP_ID', 'PRODUCTION_APP_SECRET'
        fim
      fim
      

Prefiro esse método porque, uma vez configurado, os colegas de trabalho e outras máquinas não têm configuração adicional.

Eric Hu
fonte
3
+1ed Isso é estranho! As pessoas dizem que você não pode adicionar o host local como o URL do seu aplicativo. Mas isso simplesmente funciona para mim. Obrigado!
Keyne Viana #
15
Ainda é esse o seu caso? Parece que não consigo adicionar localhost, 127.0.0.1:5000 ou qualquer coisa semelhante ao domínio do meu aplicativo no Facebook.
Pete
Eu apenas tentei criar um novo e encontrei um problema de 'domínio inválido'. Obrigado pela captura
Eric Hu
1
@zoltarSpeaks Veja minha resposta atualizada. Você tem que usar um campo diferente, não "domínio app"
Eric Hu
1
isso substituirá o config.omniauth dos inicializadores / devise.rb: facebook, 'APP_KEY', 'APP_SECRET',: scope => "email, offline_access .."?
disappearedng
26

Claro que você pode, basta adicionar o URL localhost (sem "http") no seu app_domain e depois adicionar no seu site_url http://localhost(com http)

Atualizar

Agora o Facebook muda um pouco as coisas, basta acessar as configurações do aplicativo e, no URL do site, basta adicionar http: //localhoste deixar o domínio do aplicativo vazio

stalin
fonte
Isso funciona totalmente. Não há necessidade de nada do nosso lado da cerca.
godspeedelbow
10
Isso não funciona mais você obter o erro não é possível adicionar domínios de nível superior
Josh Bedo
20

Aqui está a minha configuração e funciona bem para a API do PHP:

domínio do aplicativo

   http://localhost

URL do site

   http://localhost:8082/
negociado
fonte
1
teve de preencher ambas as entradas de texto para localhost ao trabalho
paulruescher
19

NOTA: A partir de 2012, o Facebook permite o registro de "localhost" como URL de retorno. Você ainda pode precisar de uma solução semelhante para outros provedores (por exemplo, Microsoft one).

Se você precisar de um nome de domínio real registrado no Facebook (como my.really.own.domain.com), poderá redirecionar localmente solicitações para esse domínio para sua máquina. A abordagem mais fácil de usar em qualquer sistema operacional é alterar o arquivo "hosts" para mapear o domínio para 127.0.0.1 (consulte http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAA e https: / /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file ).

Normalmente, eu uso o Fiddler para fazer isso por mim (no Windows com IIS local) - veja exemplos em http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp .

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

A abordagem de abordagens de arquivos de hosts não funciona com o Visual Studio Development Server, pois exige que os URLs recebidos sejam localhost / 127.0.0.1. Se você precisar trabalhar com ele (ou possivelmente com o IIS Express) para substituir o host - Usando o Fiddler com o IIS7 Express

Alexei Levenkov
fonte
9

O Facebook não permite mais um URL de retorno de chamada 'localhost' para aplicativos FBML no Facebook

Sudantha
fonte
verifique se nas configurações de segurança do Facebook você tem a 'Navegação segura' desativada. Isso tornará o seu host local indisponível se estiver ativado.
supajb
9

Com o novo centro de desenvolvimento, agora é mais fácil:

1) Deixe os domínios do aplicativo em branco.
2) Clique em Adicionar plataforma.
3) O URL do site deve ser igual ao caminho completo do seu host local.
4) Salvar alterações

JSV
fonte
1
Verificado, este é o melhor caminho a percorrer para uma instalação de host local. Basta inserir o URL base no seu ambiente de desenvolvimento, como acima, sem o http: // e o facebook o anexará. Coisas simples! Obrigado Jay
keade
1
Essa solução resolveu o meu problema quando executado no localhost
Rola
8

Acabei de descobrir uma solução alternativa: você pode tornar sua máquina local acessível usando http://localtunnel.com . Você precisará (temporariamente) alterar alguns URLs usados ​​no código do aplicativo / html, para que os links apontem para o domínio temporário, mas pelo menos o facebook possa acessar sua máquina.

Martin T.
fonte
7

Nas configurações básicas do seu aplicativo ( https://developers.facebook.com/apps ) em Configurações-> Básico-> selecione como o seu aplicativo se integra ao Facebook ...

Use "URL do site:" e "URL do site para celular:" para armazenar seus URLs de produção e desenvolvimento, respectivamente. Ambos os sites poderão se autenticar. Estou apenas usando o Facebook para autenticação, por isso não preciso de nenhum dos recursos de redirecionamento de sites para dispositivos móveis. Normalmente, altero o "URL do site móvel:" para o meu site "localhost: 12345" enquanto estou testando a autenticação e, em seguida, restauro-o ao normal quando terminar.

Carter Medlin
fonte
5

Há sim ! Minha solução funciona quando você cria um aplicativo, mas deseja usar a autenticação do facebook no seu site. A solução abaixo NÃO é necessária quando você deseja criar um aplicativo integrado à página do FB.

O problema é que você não pode colocar "localhost" como um domínio na página de configuração do facebook do seu aplicativo. Razões de segurança ?

Você precisa ir ao seu arquivo host, no OSX / Linux etc / hosts, e adicionar a seguinte linha: 127.0.0.1 dev.yourdomain.com

O domínio que você coloca o que quiser. Um erro é adicionar esta linha: localhost dev.yourdomain.com (pelo menos no osx snow leopard no não funciona).

Então você precisa limpar o cache do DNS. No OSX: digite dscacheutil -flushcache no terminal. Por fim, volte ao site do desenvolvedor do facebook online e, na página de configuração do seu aplicativo, você pode adicionar o domínio "dev.seudominio.com".

Se você usa um programa como Mamp, Easyphp ou qualquer outra coisa, verifique se a porta do Apache é 80.

Esta solução deve funcionar no Windows porque também possui um arquivo de hosts. No entanto, até onde me lembro, o Windows 7 não usa mais esse arquivo, mas esse truque deve funcionar se você encontrar uma maneira de forçar o Windows a usar um arquivo de hosts.

MartinL
fonte
funciona para win8.1 c: \ windows \ system32 \ drivers \ etc \ hosts. Você pode precisar liberar 'Cache do resolvedor de host' no chrome URL = chrome: // net-internals / # dns
rnrneverdies
5

Você precisa escolher o 'login do facebook' do produto do Facebook e ativar o Login do Cliente OAuth, 'Login do OAuth da Web' e 'Login do OAuth do navegador incorporado', mesmo se você fornecer o URL do host local Ele funcionará insira a descrição da imagem aqui

Abhinav bhardwaj
fonte
Isso ajudou a levar o problema adiante. Mensagem do FB a partir de 23/02/2018: em março, estamos fazendo uma atualização de segurança nas configurações do seu aplicativo que invalidará chamadas de URIs não listadas no campo URIs de redirecionamento de OAuth válidos abaixo. Esta atualização ocorre em resposta a atividades maliciosas vimos em nossa plataforma e queremos proteger seu aplicativo ou site, exigindo um novo modo estrito para redirecionar URIs.
Tim Tyler
1
Fb agora requer https para o retorno de chamada. Localhost não suporta https.
precisa saber é o seguinte
1
@huuthang, para que toda a Q / A seja descontinuada.
RGB
3

Acho que você deve conseguir desenvolver aplicativos usando o servidor da web de desenvolvimento do visual studio: Inicie um novo aplicativo do FaceBook em: http://www.facebook.com/developers/ . Em seguida, defina as configurações do URL do site e do URL da tela como a instância em execução do site, por exemplo: http: // localhost: 1062 /

Aqui estão alguns links que devem ajudá-lo a começar com o 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 isto ajude.

Vasile Laur
fonte
3

Tente isso ---

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

1 - Clique em Aplicativos e selecione seu aplicativo.

2 - Clique no botão Configurações no lado esquerdo da tela.

3 - Nas configurações básicas, clique no botão Adicionar plataforma abaixo da configuração.

4 - Selecione Site na caixa de diálogo da plataforma.

5 - Digite seu URL (o host local funciona aqui).

6 - Na entrada de texto Domínios do aplicativo, adicione seu domínio que corresponda ao da URL.

7 - Salve suas configurações.

Snm Maurya
fonte
2

Suponha que você tenha registrado seu aplicativo como:

app.domain.com

Você só precisa modificar o arquivo / etc / hosts adicionando

127.0.0.1 dev01.app.domain.com

Em seguida, modifique sua configuração do apache

ServerName dev01.app.domain.com

e reinicie o apache.

Você precisará colocar seu URL em uma variável para usá-lo como parâmetro XML em algumas chamadas:

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

Não tenha credibilidade suficiente para comentar a resposta votada, mas pelo menos no meu ambiente de rails (execução 4), o rails s está http://localhost:3000, não http://www.localhost:3000. Quando mudei para http://localhost:3000, funcionou muito bem. Não há necessidade de editar nenhum arquivo de hosts.

Andrew Shenstone
fonte
2

app domain : localhost

site URL : http://localhost:4440/

trabalhou para mim com a nova interface do usuário.

sftsz
fonte
0

Minha solução funciona bem no host local ..... Para o uso de URLs do site http://localhost/ e para domínios de localhost/folder_name aplicativos, descanse tudo é o mesmo ....... funciona bem (embora seja exibido como redflag no domínio de aplicativo ... o aplicativo está funcionando bem)

fabuloso
fonte
0

É fácil acessar o painel do aplicativo, na guia de login do facebook, clicar em configurações e selecionar Aplicar HTTPs Não, salvar configuraçõesinsira a descrição da imagem aqui

Jerome Blacq
fonte
0

O aplicativo será executado perfeitamente no localhost: 3000, você só precisa especificar o endereço https no qual o aplicativo estará ativo quando estiver no modo de produção.
A opção 2 é fornecer o URL ou o site heroku, que permite que você tenha um aplicativo de amostra no modo de produção.

insira a descrição da imagem aqui

vidur punj
fonte
0

Atualização mais recente: você não precisa fornecer URLs se estiver testando-o em desenvolvimento. Você pode deixar os campos em branco. Verifique se o seu aplicativo está no modo de desenvolvimento. Caso contrário, desative o status do ativo.

Não há necessidade de fornecer URL do site, domínios de aplicativo ou redirecionar válido oauth uri.

insira a descrição da imagem aqui

Vigneshwaran Sivalingam
fonte
1
Observe que, se você mudar o aplicativo de "ativo" para "desenvolvimento", poderá fazer login no localhost na máquina de desenvolvimento, mas TODOS OS SEUS USUÁRIOS AO VIVO NÃO poderão mais fazer login.
Webdevbyjoss 5/05/19
Eu fiz isso e ainda me deu o erro e botão fb não iria aparecer
joslinm
Após criar o aplicativo, clique no botão "Criar aplicativo de teste" para obter um aplicativo apenas para desenvolvimento / teste. Eu ainda precisava adicionar "localhost" aos domínios de aplicativos.
Nenhum
@ J.Money Eu acho que pode ser alterado agora. Obrigado por me avisar.
Vigneshwaran Sivalingam