Come testare Facebook Connect localmente


194

Uso le API ASP .NET e Facebook Connect. ma quando eseguo l'app e premo il pulsante Connetti, ritorna al sito Web non al server locale di prova che è ( http: // localhost: xxxx / test.aspx ) Quindi come posso testare Facebook localmente (cioè come posso cambiare il URL di richiamata)?


4
La risposta è qui: forum.developers.facebook.com/viewtopic.php?pid=116136 devi modificare il file 'C: \ WINDOWS \ system32 \ drivers \ etc \ hosts' per fare in modo che il tuo dominio arrivi al tuo host locale
Haytham

101
Questo sistema sembra essere implementato piuttosto male da parte di Facebook. Non sembra essersi accorto che qualcuno vorrebbe testare la funzione se non su un server live. Le due soluzioni fornite qui - la modifica del file hosts locale per lo spoofing del server di produzione e il reindirizzamento a localhost e la modifica temporanea dell'URL di produzione live su Facebook in localhost, sono entrambi design notevolmente errato da parte di Facebook. Facebook deve aggiungere una sorta di capacità di test al proprio sistema.
Paul Legato,

2
Bene, una soluzione è avere 3 app -> live, QA e Dev. Quindi se la tua app principale è apps.facebook.com/ohnice/ Il QA e dev può essere è apps.facebook.com/ohnice_qa_sd/ è apps.facebook.com/ohnice_dev_fg/ sì qualcosa di casuale in modo da non avere visitatori indesiderati quando la tua casa non è ordinato.
tgkprog,

1
@PaulLegato è fatto ora (dopo anni ...). Vedi la mia soluzione o una delle soluzioni utilizzando la funzione di test.
Erdal G.

Risposte:


236

È abbastanza semplice quando lo scopri.

Apri /etc/hosts(unix) o C:\WINDOWS\system32\drivers\etc\hosts.

Se il tuo dominio è foo.com, aggiungi questa riga:

127.0.0.1    local.foo.com

Durante il test, apri local.foo.comil browser e dovrebbe funzionare.


4
Per modificare il file hosts su MAC, esegui "sudo pico / private / etc / hosts" nel tuo terminale, modifica e premi "ctrl X" per salvare
Christoffer

@Christoffer: credo che / private / etc sia solo un link simbolico in / etc, quindi / etc / hosts e / private / etc / hosts è lo stesso file.
Freeall

1
Hai ragione ... ma alcuni di noi hanno bisogno di nutrirsi con il cucchiaio e dire "open / etc / hosts" non è abbastanza;) Tuttavia, FB sta ancora fallendo localmente con questa soluzione. Non sto usando Facebook JS
Christoffer

5
questo ha funzionato per me fino a poco tempo fa ma ora ricevo connection refusedun'eccezione quando provo ad accedere, probabilmente a causa di una modifica sul lato Facebook. ogni idea di una soluzione è molto apprezzata.
onurmatik,

1
Se lo stai facendo per accedere a un'app Rails localmente in esecuzione, potresti dover visitare local.foo.com: 3000` nel tuo browser poiché le app Rails di solito vengono eseguite su quella porta.
David Tuite,

102

Modifica la tua app su www.facebook.com/developers/ e imposta "URL del sito" su "http: // localhost / myapppath".

Al termine, ripristinalo.


19
Facebook non "ricollega" al tuo server. Lo fa il loro JS. E JS funziona nel contesto del tuo browser. Chissà dove punta "localhost".
Alex,

Non mi avrebbe permesso di aggiungere " localsite ", dovevo assicurarmi di avere un punto lì dentro. Funzionava : " local.site "
Pete,

Alcune funzioni FB non funzionano con questo. Ad esempio: salvare i risultati sui server FB. Vuole HTTPS, quindi il mio trucco localhost non funziona :(
Kostadin

2
vale la pena notare che la convalida sul modulo dell'app richiede di utilizzare localhost nell'URL, ad es. http://localhost/myappanzichéhttp://myapp
graham

1
se usi un'altra porta usa questo modello: localhost: xxxx ), ad esempio: localhost: 8080
m0z4rt

77

Suggerisco di creare un'app di test (solo per ambiente di sviluppo) su https://developers.facebook.com/apps e impostare: Website with Facebook Loginproprietà sul localhost: impostazioni [porta] .
questa opzione funzionerà bene senza la necessità di cambiare host.
ricordati di cambiare l' appId alla tua app di produzione quando vai in diretta

Modifica : nell'ultima versione di fb la troverai nella settingsscheda. inserisci qui la descrizione dell'immagine


2
O semplicemente usa file di configurazione separati per, dev, staging e live.
Chris Barry,

1
Non riesco più a trovare "Sito Web con accesso a Facebook".
Yehe

5
Sembra che tu debba fare clic sul grande pulsante orizzontale grigio "+ Aggiungi piattaforma". Lì hai "Sito Web"
Luciano,

75

Facebook ha aggiunto la funzionalità delle versioni di prova.

Innanzitutto, aggiungi una versione di prova della tua applicazione: Crea app di prova

Crea app di prova

Quindi, modifica l' URL del sito in " http: // localhost " in Sito Web e premi Salva modifiche

inserisci qui la descrizione dell'immagine

Questo è tutto, ma fai attenzione: le chiavi ID app e Segreto app sono diverse per l'applicazione e le sue versioni di test!


cos'è il dominio app nel pannello delle impostazioni. sto sviluppando un'app ionica con il login di Facebook
Chirag thaker

1
@Chiragthaker È il dominio in cui verrà ospitata l'app di produzione
Erdal G.

3
Questa è una risposta molto migliore nel mio caso, rispetto alla modifica del hostsfile, perché non richiede l'uso di HTTPS sul mio server di prova.
Petr Dlouhý il

39

Non devi fare nulla di difficile!

Facebook → Impostazioni → Base:
scrivere " localhost " nel campo " Domini app " , quindi fare clic su " + Aggiungi piattaforma ", selezionare " Sito Web " .

Dopo di che, nel " Sito URL " campo di scrivere l'URL localhost
(ad esempio: http://localhost:1337/something).

Questo ti permetterà di testare i tuoi plugin Facebook localmente.


1
esiste una soluzione alternativa per i file nel file di percorso: /// android_assets / www? Facebook non consentirà tale percorso per l'URL del sito
Vignesh Subramanian il

deve essere https ora
Simon_Weaver

@Simon_Weaver da dove hai preso queste informazioni? è documentato da qualche parte?
Kolistivra,


@Simon_Weaver da quel link che hai inviato: "Sarai ancora in grado di usare HTTP con indirizzi" localhost ", ma solo mentre la tua app è ancora in modalità di sviluppo."
Kolistivra,

5

Facebook sembra disabilitare casualmente la possibilità di impostare localhost come dominio sulla tua app di Facebook. Ho trovato il modo più semplice per aggirare il mio localhost sul web. Questo può essere fatto gratuitamente usando http://progrium.com/localtunnel/ o con un URL personalizzato (più facile poiché non è necessario cambiare l'URL ogni volta su Facebook) https://showoff.io


3
un'altra scelta di tunnel è ngrok.com
Mohamed Selim,

3

Non ho potuto usare le altre soluzioni ... Quello che ha funzionato per me è stato l'installazione di LocalTunnel.net (https://github.com/danielrmz/localtunnel-net-client), e quindi l'utilizzo dell'URL risultante su Facebook.


1

Sembra che FB abbia appena cambiato di nuovo la pagina di sviluppo dell'app e abbia aggiunto una funzione chiamata "Lista bianca IP server".

  1. Vai alla tua app e seleziona Impostazioni -> Scheda Avanzate
  2. Ottieni il tuo IP pubblico (google ti dirà se google "Whats My IP")
  3. Aggiungi il tuo IP pubblico alla Whitelist IP del server e fai clic su Salva modifiche in fondo

cosa succede se sul sito lavorano più sviluppatori da diverse posizioni? Usiamo VM (Vagrant) quindi l'IP è lo stesso per ogni sviluppatore. Purtroppo Facebook non consente di utilizzare gli IP locali nella Whitelist. Non funziona
ProblemsOfSumit

Se sto leggendo il tuo commento giusto, questo non dovrebbe essere un problema. Devi inserire il tuo IP pubblico, che dici sia lo stesso per ogni sviluppatore (intendevi che NON è lo stesso). Se hai più sviluppatori in siti diversi con IP diversi, puoi utilizzare una VPN per instradare tutto il traffico attraverso 1 IP.
sevensevens,

no, ovviamente l'IP pubblico per macchine diverse su posizioni diverse non è lo stesso, solo l'IP locale su ogni macchina è lo stesso. (ad es. localhost). Non voglio indirizzare nulla. Per ora sto usando localhost (solo un esempio) nell'app FB - che funziona benissimo. Ma ho bisogno di una soluzione una volta che la pagina diventa live. Facebook consente di creare "App di prova" all'interno di un'app, che potrebbe essere la soluzione ma non l'ho ancora provata. EDIT: sembra che sia la soluzione
ProblemsOfSumit

1

vai alla pagina di tela .. visualizzalo nel browser .. copia il testo della barra degli indirizzi. ora vai alla tua app di Facebook vai a modificare le impostazioni

nel sito Web, nel sito url incolla quell'indirizzo

nell'integrazione di Facebook, incolla nuovamente l'indirizzo in canvas url

e anche lo stesso codice ovunque sia richiesto l'URL della tela o l'URL di reindirizzamento.

spero che possa aiutare ..


-6

Crea 2 app e

In /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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.