Esecuzione dell’applicazione Facebook su localhost

Sto pensando di connetterti alla chat di Facebook dal mio localhost. Dovrò ottenere la chiave di sessione da Facebook. Quando fornisco l’URL del sito come localhost:8080 o ip-address:8080 non funziona.

Ho letto sulla configurazione di due app con 2 chiavi API diverse, una su dev m / c e altre su localhost, ma non l’ho capito.

Qualcuno può spiegare come eseguire un’applicazione Facebook su localhost?

Ho scritto un tutorial su questo un po ‘di tempo fa.

Il punto più importante è “l’URL del sito”:

URL del sito: http: // localhost / nome_app /

Dove la struttura della cartella è qualcosa di simile:

 app_name ¦ index.php ¦ +---canvas ¦ ¦ index.php ¦ ¦ ¦ +---css ¦ main.css ¦ reset.css ¦ +---src facebook.php fb_ca_chain_bundle.crt 

MODIFICARE:
Kavya : in che modo il server FB riconosce il mio localhost anche senza un IP o una porta ??

Non penso che questo abbia qualcosa a che fare con Facebook, suppongo che dal momento che il parametro src dell’iframe viene caricato dal lato client, tratterà l’URL locale come se lo inserissi direttamente nel tuo browser.

Ad esempio, hai un file sul tuo server online con contenuti (ad esempio online.php ):

  

E sulla tua directory root test.php locale, test.php il file test.php :

 < ?php echo "Hello from Localhost!"; ?> 

Visita http://your_domain.com/online.php per vedere il contenuto del tuo file localhost!

Questo è il motivo per cui le sottoscrizioni in tempo reale e rimuovere le autorizzazioni di callback (solo per menzionare) non funzioneranno con gli URL di localhost! perché Facebook ping (invia richieste HTTP) a questi URL, ma ovviamente il server di Facebook non tradurrà tali URL sul tuo!

se usi localhost:

in Facebook -> Impostazioni -> Di base, nel campo “App Domains” scrivi “localhost”, quindi fai clic su “+ Aggiungi piattaforma” scegli “Sito Web”,

creerà due campi “URL sito mobile” e “URL sito”, in “URL sito” scrivere di nuovo “localhost”.

per me va bene.

Puoi anche modificare il file “hosts” e creare la variazione locale del tuo dominio.

Esempio

Se il tuo vero indirizzo dell’applicazione Facebook è “esempio.com” puoi creare il dominio “localhost.example.com” (accessibile solo dal tuo pc) nel tuo file “hosts” che punta a “localhost” ed eseguire il tuo sito web locale sotto questo dominio. Puoi ingannare Facebook in questo modo.

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

Utilizza “URL sito:” e “URL sito mobile:” per conservare gli URL di produzione e di sviluppo. Entrambi i siti saranno autorizzati ad autenticarsi. Sto solo utilizzando Facebook per l’autenticazione, quindi non ho bisogno di nessuna delle funzioni di reindirizzamento dei siti mobili. Di solito cambio “URL sito mobile:” nel mio sito “localhost: 12345” mentre eseguo il test dell’autenticazione, quindi lo ripristino quando sono terminato.

2013 agosto. Facebook non consente di impostare il dominio con la porta per un’app, ad esempio “localhost: 3000”.

Quindi puoi usare https://pagekite.net per tunnelare il tuo localhost:port al dominio appropriato.

Gli sviluppatori di Rails possono utilizzare http://progrium.com/localtunnel/ gratuitamente.

  • Facebook consente solo un dominio per l’app al momento. Se stai cercando di aggiungerne un altro, come localhost, mostrerà qualche tipo di errore diverso sul dominio. Assicurati di utilizzare un solo dominio per la richiamata e per l’impostazione del dominio delle app in quel momento.

Così ho fatto funzionare questo oggi. Il mio URL è http://localhost:8888 . Il dominio che ho dato a Facebook è localhost. Ho pensato che non funzionasse perché stavo cercando di estrarre i dati usando il metodo FB.api . Continuavo a ottenere un nome “non definito” e un’immagine senza una fonte, quindi sicuramente non avevo accesso al grafico.

Più tardi mi sono reso conto che il mio problema era in realtà che stavo passando un primo argomento di /me su FB.api e che non avevo un token. Quindi avrai bisogno di usare la funzione FB.getLoginStatus per ottenere un token, che dovrebbe essere aggiunto all’argomento /me .

basta specificare l’URL della tua canvas come http: // localhost / app_path .

Ok, non sono sicuro di cosa succede con queste risposte, ma ti farò sapere cosa ha funzionato per me, come consigliato da un esperto senior del mio lavoro. Sto lavorando su Ruby on Rails e utilizzo del codice JavaScript di Facebook per ottenere i token di accesso.

Problema: per fare l’autenticazione, Facebook sta prendendo l’url dalla barra degli indirizzi e confrontando ciò con quello che hanno sul file. Non ti permettono di usare localhost:3000 per qualsiasi motivo. Tuttavia, è ansible utilizzare un nome di dominio completamente yoursite.dev come yoursite.dev eseguendo un server locale e puntando yoursite.dev su 127.0.0.1:3000 o ovunque il proprio localhost puntasse.

Passaggio 1 : installa o aggiorna Nginx

$ brew install nginx (install) o $ brew upgrade nginx (update)

Passaggio 2 : apri il file di configurazione di nginx

/usr/local/etc/nginx/nginx.conf (di solito qui)

/opt/boxen/config/nginx/nginx.conf (se usi Boxen)

Passaggio 3 Aggiungi questo bit di codice nel tuo blocco http {}

Sostituisci proxy_pass con dove vuoi puntare yoursite.dev . Nel mio caso stava sostituendo localhost: 3000 o l’equivalente 127.0.0.1:3000

 server { listen yoursite.dev:80; server_name yoursite.dev; location / { proxy_pass http://127.0.0.1:3000; } } 

Passaggio 4 : modifica il file hosts, in /etc/hosts su Mac da includere

 127.0.0.1 yoursite.dev 

Questo file indirizza i domini a localhost. Nginx ascolta su localhost e reindirizza se corrisponde a una regola.

Passo 5 : Ogni volta che usi il tuo ambiente di sviluppo in futuro, usi yoursite.dev nella barra degli indirizzi invece di localhost:3000 così Facebook ti collega correttamente.

Inoltra è un ottimo strumento per aiutare nello sviluppo di app facebook localmente, supporta SSL quindi la cosa cert non è un problema.

https://forwardhq.com/in-use/facebook

NOTA BENE: Sono uno degli sviluppatori

Devi configurare la tua app per eseguire https per localhost

Puoi seguire i passaggi indicati in questa sezione per configurare HTTPS su ubuntu

https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-12-04

È necessario eseguire i seguenti passaggi:

installa apache (se non hai)

 sudo apt-get install apache2 

Fase 1: triggersre il modulo SSL

 sudo a2enmod ssl sudo service apache2 restart 

Passaggio due: creare una nuova directory

 sudo mkdir /etc/apache2/ssl 

Passaggio 3: creare un certificato SSL autofirmato

 sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache/ssl/apache.key -out /etc/apache2/ssl/apache.crt 

Con questo comando, creeremo entrambi il certificato SSL autofirmato e la chiave del server che lo protegge e li inseriremo entrambi nella nuova directory. La linea più importante è “Nome comune”. Inserisci qui il tuo nome di dominio ufficiale o, se non ne hai ancora uno, l’indirizzo IP del tuo sito.

Nome comune (ad es. Nome FQDN del server o TUO nome) []: esempio.com o localhost

Fase quattro: impostare il certificato

 sudo vim /etc/apache2/sites-available/default-ssl 

Trova le seguenti linee e modifica quelle con le tue impostazioni

ServerName localhost o esempio.com

SSLEngine su SSLCertificateFile /etc/apache2/ssl/apache.crt

SSLCertificateKeyFile /etc/apache2/ssl/apache.key

Passaggio 5: triggers il nuovo host virtuale

 sudo a2ensite default-ssl sudo service apache2 reload 

Un trucco:

Usa MAMPPRO e crea: nome del server: l’indirizzo ESATTO del tuo sito web (ad esempio: helloworld.com) sul tuo sito sul tuo disco

Su Facebook: così puoi mantenere anche il tuo URL del sito originale (ad esempio: helloworld.com)

Ora capisci che quando digiti il ​​tuo sito web sulla barra degli indirizzi sei in locale ! ..e quando vuoi essere online, solo inattivo il server su MAMP PRO ..

🙂

Nessuna delle risposte sopra ha funzionato per me. Sono in esecuzione su FB API 2.5. Il mio era una combinazione di problemi che portano al successo una volta risolto

  1. Crea un’app di prova per assicurarti che sia gestita e gestita come tale e che possa essere distriggersta quando è triggers
  2. Leggi il messaggio di errore correttamente 🙂 – Ho dovuto abilitare “Accesso Web OAuth” CON “Accesso OAuth client”
  3. Utilizzare https://www.whatismyip.com/ per scoprire qual è il mio attuale IP
  4. Crea un record A sul mio dominio, ad esempio http://localhost.mydomain.com che punta al mio IP corrente

Probabilmente non è l’ideale come il cambiamento di IP dinamico e probabilmente si potrebbe usare DynDNS o qualcosa di simile per rendere l’IP più “statico” ma ha funzionato per me