Risposte:
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.
Website
casella 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)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.
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: //localhost
e lascia vuoto il Dominio app
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
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
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.
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.
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.
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à
funziona a giugno 2018, anche dopo il requisito HTTPS. Sembra che un'app di test non richieda https:
creare un'app di prova: https://developers.facebook.com/docs/apps/test-apps/
quindi nell'app di test, segui i semplici passaggi di questo video: https://www.youtube.com/watch?v=7DuRvf7Jtkg
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:
Spero che questo ti aiuti.
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.
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" />
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.
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.
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.