Sviluppo di Facebook in localhost


177

Volevo solo sapere se esiste un modo per sviluppare applicazioni di Facebook in localhost.

Risposte:


246

Modifica: 2-15-2012 Ecco come utilizzare l'autenticazione FB per un sito Web localhost.

Trovo più scalabile e conveniente configurare una seconda app di Facebook. Se sto costruendo MyApp, ne farò una seconda chiamata MyApp-dev.

  • Crea una nuova app su https://developers.facebook.com/apps
  • (Nuovo 15/02/2012) Fai clic sulla Websitecasella di controllo sotto "Seleziona come la tua applicazione si integra con Facebook" (Nella recente versione di Facebook puoi trovarla in Impostazioni> Base> Aggiungi piattaforma - Quindi seleziona il sito Web)
  • Imposta il campo URL del sito ( NON il campo Domini app ) su http: //www.localhost: 3000 (questo indirizzo è per Ruby on Rails, cambia se necessario)

inserisci qui la descrizione dell'immagine

  • Nell'inizializzatore dell'applicazione, inserisci il codice per rilevare l'ambiente
    • Codice di esempio di Rails 3
      se Rails.env == "sviluppo" || Rails.env == 'test'
        Rails.application.config.middleware.use OmniAuth :: Builder do
          provider: facebook, 'DEV_APP_ID', 'DEV_APP_SECRET'
        fine
      altro
        # Produzione
        Rails.application.config.middleware.use OmniAuth :: Builder do
          fornitore: facebook, 'PRODUCTION_APP_ID', 'PRODUCTION_APP_SECRET'
        fine
      fine
      

Preferisco questo metodo perché una volta impostato, i colleghi e le altre macchine non hanno una configurazione aggiuntiva.


3
+ 1ed Questo è strano! Le persone dicono che non puoi aggiungere localhost come url dell'app. Ma funziona semplicemente per me. Grazie!
Keyne Viana,

15
È ancora così per te? Non riesco ad aggiungere localhost o 127.0.0.1:5000 o qualcosa di simile al dominio della mia app per Facebook.
Pete,

Ho appena provato a crearne uno nuovo e ho riscontrato un problema di "dominio non valido". Grazie per la cattura
Eric Hu,

1
@zoltarSpeaks Vedi la mia risposta aggiornata. Devi usare un campo diverso, non "dominio app"
Eric Hu,

1
questo sostituirà gli inizializzatori / devise.rb config.omniauth: facebook, 'APP_KEY', 'APP_SECRET',: scope => "email, offline_access .."?
scomparso il

26

Certo che puoi, basta aggiungere l'URL localhost (senza "http") nel tuo app_domain e quindi aggiungere il tuo site_url http://localhost(con http)

Aggiornare

Facebook cambia un po 'le cose ora, vai alle impostazioni dell'app e nell'URL del sito aggiungi http: //localhoste lascia vuoto il Dominio app


Questo funziona totalmente. Non c'è bisogno di nulla dalla nostra parte del recinto.
godspeedelbow

10
Questo non funziona più si ottiene l'errore non è possibile aggiungere domini di primo livello
Josh Bedo,

20

Ecco la mia configurazione e funziona bene per l'API PHP:

dominio dell'app

   http://localhost

URL del sito

   http://localhost:8082/

1
ho

19

NOTA: A partire dal 2012 Facebook consente la registrazione di "localhost" come URL di ritorno. Potresti aver ancora bisogno di una soluzione simile per altri provider (ad esempio Microsoft).

Se hai bisogno di un vero nome di dominio registrato su Facebook (come my.really.own.domain.com) puoi reindirizzare localmente le richieste a questo dominio sul tuo computer. L'approccio più semplice out of box su qualsiasi sistema operativo è quello di modificare il file "hosts" per mappare il dominio a 127.0.0.1 (vedere http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAA e https: / /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file ).

Di solito uso Fiddler per farlo per me (su Windows con IIS locale) - vedi esempi su http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp .

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

L'approccio dei file host degli approcci non funziona con Visual Studio Development Server in quanto richiede che gli URL in entrata siano localhost / 127.0.0.1. Se devi lavorare con esso (o eventualmente con IIS express) per sovrascrivere l'host - Utilizzo di Fiddler con IIS7 Express


9

Facebook non consentiva più un URL di callback "localhost" per le applicazioni Facebook FBML


assicurarsi che nelle impostazioni di sicurezza di Facebook sia disattivata la "Navigazione sicura". Questo renderà il tuo localhost non disponibile se è abilitato.
supajb,

9

Con il nuovo centro di sviluppo ora è più semplice:

1) Lascia vuoti i domini delle app.
2) Fare clic su Aggiungi piattaforma
3) L'URL del sito deve essere uguale al percorso completo dell'host locale.
4) Salva modifiche


1
Verificato che questo è il modo migliore per installare localhost. Inserisci semplicemente l'URL di base nel tuo ambiente di sviluppo come sopra, senza http: // e Facebook lo aggiungerà per te. Roba semplice! Grazie Jay
keade l'

1
Quella soluzione ha risolto il mio problema durante l'esecuzione su localhost
Rola,

8

Ho appena scoperto una soluzione alternativa: puoi rendere accessibile la tua macchina locale usando http://localtunnel.com . Dovrai (temporaneamente) modificare alcuni URL utilizzati nel codice dell'app / html in modo che i link rimandino al dominio temporaneo, ma almeno Facebook può raggiungere il tuo computer.


7

Nelle impostazioni di base della tua app ( https://developers.facebook.com/apps ) in Impostazioni-> Base-> Seleziona come la tua app si integra con Facebook ...

Utilizzare "URL del sito:" e "URL del sito mobile:" per contenere rispettivamente gli URL di produzione e sviluppo. Entrambi i siti saranno autorizzati ad autenticarsi. Sto solo usando Facebook per l'autenticazione, quindi non ho bisogno di nessuna delle funzionalità di reindirizzamento del sito mobile. Di solito cambio "URL del sito mobile:" nel mio sito "localhost: 12345" mentre collaudo l'autenticazione e poi lo ripristino normale quando ho finito.


5

C'è ! La mia soluzione funziona quando si crea un'app, ma si desidera utilizzare l'autenticazione di Facebook sul proprio sito Web. Questa soluzione di seguito NON è necessaria quando si desidera creare un'app integrata nella pagina FB.

Il fatto è che non puoi inserire "localhost" come dominio nella pagina di configurazione di Facebook della tua app. Ragioni di sicurezza ?

Devi andare al tuo file host, in OSX / Linux etc / hosts e aggiungere la seguente riga: 127.0.0.1 dev.tuodominio.com

Il dominio che metti quello che vuoi. Un errore è aggiungere questa riga: localhost dev.yourdomain.com (almeno su osx snow leopard in non funziona).

Quindi devi cancellare la cache DNS. Su OSX: digitare dscacheutil -flushcache nel terminale. Infine, torna al sito Web per sviluppatori di Facebook online e nella pagina di configurazione della tua app puoi aggiungere il dominio "dev.yourdomain.com".

Se usi un programma come Mamp, Easyphp o altro, assicurati che la porta per Apache sia 80.

Questa soluzione dovrebbe funzionare per Windows perché ha anche un file hosts. Tuttavia, per quanto ricordo Windows 7 non utilizza più questo file, ma questo trucco dovrebbe funzionare se trovi un modo per forzare Windows a utilizzare un file hosts.


funziona per win8.1 c: \ windows \ system32 \ drivers \ etc \ hosts. Potresti aver bisogno di scaricare "Host resolver cache" in chrome URL = chrome: // net-internals / # dns
rnrneverdies

5

Devi scegliere il prodotto Facebook 'facebook login' e abilitare Client OAuth Login, 'Web OAuth Login' e 'Embedded Browser OAuth Login' quindi anche se dai l'URL di localhost Funzionerà inserisci qui la descrizione dell'immagine


Ciò ha contribuito a spostare il problema. Messaggio dell'FB al 23/02/2018: a marzo stiamo effettuando un aggiornamento di sicurezza delle impostazioni dell'app che invaliderà le chiamate dagli URI non elencati nel campo URI di reindirizzamento OAuth valido di seguito. Questo aggiornamento arriva in risposta ad attività dannose abbiamo visto sulla nostra piattaforma e vogliamo proteggere la tua app o il tuo sito Web richiedendo una nuova modalità rigorosa per gli URI di reindirizzamento.
Tim Tyler,

1
Fb ora richiede https per il callback. Localhost non supporta https.
huuthang,

1
@huuthang, quindi l'intero Q / A è deprecato.
RGB


3

Penso che dovresti essere in grado di sviluppare applicazioni usando il web server di sviluppo di Visual Studio: avvia una nuova applicazione FaceBook su: http://www.facebook.com/developers/ . Quindi imposta le impostazioni per l'URL del sito e l'URL del canvas sull'istanza corrente del tuo sito Web, ad esempio: http: // localhost: 1062 /

Ecco un paio di link che dovrebbero aiutarti a iniziare con 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/

Spero che questo ti aiuti.


3

Prova questo ---

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

1 - Fai clic su App e seleziona l'app.

2 - Fare clic sul pulsante Impostazioni sul lato sinistro dello schermo.

3 - Nelle impostazioni di base, fai clic sul pulsante Aggiungi piattaforma sotto la configurazione delle impostazioni.

4 - Selezionare il sito Web nella finestra di dialogo della piattaforma.

5 - Inserisci il tuo URL (localhost funziona qui).

6 - Nell'input di testo Domini app, aggiungi il tuo dominio che corrisponde a quello nell'URL.

7 - Salva le tue impostazioni.


2

Supponi di aver registrato la tua app come:

app.domain.com

Devi solo modificare il file / etc / hosts aggiungendo

127.0.0.1 dev01.app.domain.com

Quindi, modifica la configurazione di apache

ServerName dev01.app.domain.com

e riavvia apache.

Dovrai inserire il tuo URL in una variabile per poterlo utilizzare come parametro XML in alcune chiamate:

<fb:login-button registration-url="http://<?=$URL?>/register" />

2

Non ho abbastanza cred per commentare la risposta più votata, ma almeno nel mio ambiente rails (in esecuzione 4), rails s è http://localhost:3000, no http://www.localhost:3000. Quando l'ho cambiato http://localhost:3000, ha funzionato bene. Non è necessario modificare alcun file host.


2

app domain : localhost

site URL : http://localhost:4440/

ha funzionato per me con la nuova interfaccia utente.


0

La mia soluzione funziona bene in localhost ..... Per l'utilizzo degli URL del sito http://localhost/ e per i domini delle app localhost/folder_name Riposa tutto è uguale ....... funziona bene (anche se mostra la bandiera rossa nel dominio delle app ... L'app funziona bene)


0

È facile andare alla dashboard dell'app nella scheda di accesso di Facebook, fare clic su Impostazioni quindi selezionare Imponi HTTPs No, salvare le impostazioniinserisci qui la descrizione dell'immagine


0

L'applicazione funzionerà perfettamente in localhost: 3000, devi solo specificare l'indirizzo https su cui l'applicazione sarà attiva quando sarà in modalità di produzione.
L'opzione 2 fornisce l'URL o il sito Web heroku che consente di avere un'applicazione di esempio in modalità di produzione.

inserisci qui la descrizione dell'immagine


0

Ultimo aggiornamento: non è necessario fornire alcun URL se lo si sta testando in fase di sviluppo. Puoi lasciare i campi vuoti. Assicurati che l'app sia in modalità di sviluppo. In caso contrario, disattiva lo stato dal vivo.

Non è necessario fornire l'URL del sito, i domini delle app o i codici di reindirizzamento validi.

inserisci qui la descrizione dell'immagine


1
Tieni presente che se trasformi la tua app da "live" a "development", sarai in grado di accedere da localhost sulla macchina di sviluppo, ma TUTTI I TUOI UTENTI LIVE NON SARANNO più in grado di accedere.
webdevbyjoss,

L'ho fatto e mi ha comunque dato l'errore e il pulsante fb non
veniva

Dopo aver creato l'app, fai clic sul pulsante "Crea app di prova" per ottenere un'app solo per sviluppo / test. Avevo ancora bisogno di aggiungere "localhost" ai domini delle app.
Nessuno

@ J.Money Penso che potrebbe essere cambiato ormai. Grazie per avermi fatto sapere.
Vigneshwaran Sivalingam,
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.