2012-03-31 11 views
4

Ich versuche eine Website zu entwickeln, die Facebook Connect für die Authentifizierung und andere Dinge verwendet. Es sieht jedoch so aus, als ob FBConnect im Allgemeinen die URL der Webseite benötigt, die dieselbe ist, mit der Sie die App registriert haben. Dies ist ein Problem, denn obwohl ich die Website unterFacebook API-Integration: Testen auf andere URL?

www.example.com 

läuft Ich teste die Website unter

localhost:9000 

So alle Facebook Sachen bricht auf meinem lokalen Rechner. Derzeit arbeite ich einfach daran, indem ich Tests auf dem tatsächlichen Server durchführe. Also jedes Mal, wenn ich möchte, dass mein Code zu testen, nachdem Sachen zu tun, fahre ich ein

// local machine 
git commit -a 
git push origin master 

// remote server 
git pull origin master 

die neben ärgerlich für jede kleine Änderung zu tun, ist offensichtlich ein Problem sein werde, wenn echte Menschen die Website tatsächlich erreichen und ich möchte die Entwicklung fortsetzen & Testen, ohne es immer und immer wieder zu brechen, während die Leute es benutzen.

Gibt es eine bessere Möglichkeit, so etwas zu tun? Ich bin sicher, dass andere (d. H. Alle anderen, die jemals FBConnect benutzt haben) schon einmal auf dieses Problem gestoßen sind. Ist es möglich, meinen DNS zu www.example.com bei localhost während des Testens Trick, so das Facebook-Javascript ausgetrickst wird, um weiter zu arbeiten?

Antwort

2

Die eigentliche Antwort hier ist, einen Staging-Server nicht auf Ihrem eigenen Localhost und erstellen Sie eine Staging-Anwendung in FB zeigen zu dieser Bereitstellungs-URL.

Ich mag ein völlig separaten Server für diesen Zweck verwenden, so kann ich nach Belieben entwickeln und zu experimentieren, ohne sich Gedanken darüber, aufgrund einer fehlerhaften Schleife oder etwas, das meine Produktion Anwendung abstürzt. --oder-- Erstellen Sie eine Subdomain (staging.example.com) und kleben Sie einen Klon Ihres Codes in einem separaten Stammordner mit derselben Verzeichnisstruktur wie Ihre Anwendung.

Ja, müssen Sie einige kleine bedingten Code, um zu bestimmen, ob Sie an der Inszenierung oder der Produktionsversion Ihrer Website freuen und dann entsprechend die entsprechenden FB-Tasten anrufen.

3

Ein Weg, um dies ist Ihr System hosts file bearbeiten Sie Ihre Domain verweist auf localhost. Fügen Sie eine Zeile wie diese zu Ihrem /etc/hosts Datei (oder %SystemRoot%\system32\drivers\etc\hosts auf Windows):

127.0.0.1  www.yourdomain.com 

Ein weiterer Ansatz ist es, eine zweite App auf Facebook zu erstellen für Sie in-Entwickler-Version und verwenden localhost als URL für diese Version. Vergessen Sie nicht, die App-ID und das Geheimnis zu der Produktionsversion zu aktualisieren, wenn Sie bereitstellen :)

+0

Wir verwenden VirtualHostX auf dem Mac für diesen Zweck. Funktioniert super. http://clickontyler.com/virtualhostx/ – evanmcd

0

Ich stieß auf dieses Problem, wenn ich versuchte, meinen Code von der Entwicklung (localhost) in die Produktion zu verschieben. Ich konnte Localhost als Canvas-URL und meine Produktionsdomäne für die sichere Canvas-URL verwenden. So konnte ich