Antworten:
Bearbeiten: 2-15-2012 So verwenden Sie die FB-Authentifizierung für eine localhost-Website.
Ich finde es skalierbarer und bequemer, eine zweite Facebook-App einzurichten. Wenn ich MyApp baue, mache ich eine zweite namens MyApp-dev.
Website
Kontrollkästchen unter "Auswählen, wie Ihre Anwendung in Facebook integriert wird". (In der aktuellen Facebook-Version finden Sie dies unter "Einstellungen"> "Basis"> "Plattform hinzufügen - Dann Website auswählen".)if Rails.env == 'Entwicklung' || Rails.env == 'test' Rails.application.config.middleware.use OmniAuth :: Builder do Anbieter: Facebook, 'DEV_APP_ID', 'DEV_APP_SECRET' Ende sonst # Produktion Rails.application.config.middleware.use OmniAuth :: Builder do Anbieter: Facebook, 'PRODUCTION_APP_ID', 'PRODUCTION_APP_SECRET' Ende Ende
Ich bevorzuge diese Methode, da Mitarbeiter und andere Computer nach dem Einrichten kein zusätzliches Setup haben.
Natürlich können Sie einfach die URL localhost (ohne "http") in Ihre app_domain einfügen und dann Ihre site_url http://localhost
(mit http) hinzufügen.
Aktualisieren
Facebook ändert die Dinge jetzt ein wenig, gehen Sie einfach zu den App-Einstellungen und fügen Sie in der Website-URL einfach http: //localhost
die App-Domain hinzu und lassen Sie sie leer
Hier ist meine Konfiguration und sie funktioniert gut für die PHP-API:
App-Domain
http://localhost
Seiten-URL
http://localhost:8082/
HINWEIS: Ab 2012 erlaubt Facebook die Registrierung von "localhost" als Rückgabe-URL. Möglicherweise benötigen Sie noch eine ähnliche Problemumgehung für andere Anbieter (z. B. Microsoft).
Wenn Sie einen echten Domainnamen benötigen, der bei Facebook registriert ist (wie my.really.own.domain.com), können Sie Anfragen an diese Domain lokal an Ihren Computer umleiten. Der einfachste Out-of-Box-Ansatz unter jedem Betriebssystem besteht darin, die "Hosts" -Datei so zu ändern, dass die Domain 127.0.0.1 zugeordnet wird (siehe http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAA und https: /). /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file ).
Normalerweise verwende ich Fiddler, um dies für mich zu tun (unter Windows mit lokalem IIS) - siehe Beispiele unter http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp .
if (oSession.HostnameIs("my.really.own.domain.com")) {
oSession.host="localhost:80";
}
Der Ansatz der Hosts-Datei für Ansätze funktioniert nicht mit Visual Studio Development Server, da eingehende URLs localhost / 127.0.0.1 sein müssen. Wenn Sie damit (oder möglicherweise mit IIS Express) arbeiten müssen, um den Host zu überschreiben - Verwenden von Fiddler mit IIS7 Express
Mit dem neuen Entwicklungszentrum ist es jetzt einfacher:
1) Lassen Sie die App-Domains leer.
2) Klicken Sie auf Plattform hinzufügen.
3) Die Site-URL sollte dem vollständigen Pfad Ihres lokalen Hosts entsprechen.
4) Änderungen speichern
Ich habe gerade eine Problemumgehung entdeckt: Sie können Ihren lokalen Computer über http://localtunnel.com zugänglich machen . Sie müssen (vorübergehend) einige URLs ändern, die in Ihrem App-Code / HTML verwendet werden, damit Links auf die temporäre Domain verweisen, aber zumindest Facebook kann Ihren Computer erreichen.
In den Grundeinstellungen Ihrer App ( https://developers.facebook.com/apps ) unter Einstellungen-> Grund--> Wählen Sie aus, wie Ihre App in Facebook integriert werden soll ...
Verwenden Sie "Site-URL:" und "Mobile Site-URL:", um Ihre Produktions- bzw. Entwicklungs-URLs zu speichern. Beide Sites können sich authentifizieren. Ich verwende nur Facebook zur Authentifizierung, sodass ich keine der Umleitungsfunktionen für mobile Websites benötige. Normalerweise ändere ich die "URL der mobilen Site:" in meine Site "localhost: 12345", während ich die Authentifizierung teste, und setze sie dann wieder auf "Normal", wenn ich fertig bin.
Es gibt ! Meine Lösung funktioniert, wenn Sie eine App erstellen, Sie jedoch die Facebook-Authentifizierung auf Ihrer Website verwenden möchten. Diese Lösung wird NICHT benötigt, wenn Sie eine in die FB-Seite integrierte App erstellen möchten.
Die Sache ist, dass Sie "localhost" nicht als Domain auf der Facebook-Konfigurationsseite Ihrer App einfügen können. Sicherheits Gründe ?
Sie müssen zu Ihrer Host-Datei in OSX / Linux usw. / hosts gehen und die folgende Zeile hinzufügen: 127.0.0.1 dev.yourdomain.com
Die Domain, die Sie setzen, was Sie wollen. Ein Fehler ist, diese Zeile hinzuzufügen: localhost dev.yourdomain.com (zumindest auf osx Schneeleopard funktioniert nicht).
Dann müssen Sie Ihren DNS-Cache leeren. Unter OSX: Geben Sie dscacheutil -flushcache in das Terminal ein. Kehren Sie schließlich zur Online-Facebook-Entwickler-Website zurück und fügen Sie auf der Konfigurationsseite Ihrer App die Domain "dev.yourdomain.com" hinzu.
Wenn Sie ein Programm wie Mamp, Easyphp oder was auch immer verwenden, stellen Sie sicher, dass der Port für Apache 80 ist.
Diese Lösung sollte für Windows funktionieren, da sie auch eine Hosts-Datei enthält. Soweit ich mich erinnere, verwendet Windows 7 diese Datei nicht mehr, aber dieser Trick sollte funktionieren, wenn Sie einen Weg finden, Windows zur Verwendung einer Hosts-Datei zu zwingen.
Sie müssen das Facebook-Produkt 'Facebook Login' auswählen und Client OAuth Login, 'Web OAuth Login' und 'Embedded Browser OAuth Login' aktivieren, auch wenn Sie die localhost URL angeben. Es wird funktionieren
Ich denke, Sie sollten in der Lage sein, Anwendungen mit dem Visual Studio-Entwicklungswebserver zu entwickeln: Starten Sie eine neue FaceBook-Anwendung unter: http://www.facebook.com/developers/ . Stellen Sie dann die Einstellungen für die Site-URL und die Canvas-URL auf die laufende Instanz Ihrer Website ein, zum Beispiel: http: // localhost: 1062 /
Hier sind einige Links, die Ihnen beim Einstieg in FaceBook helfen sollen:
Hoffe das hilft.
Versuche dies ---
https://www.facebook.com/help/community/question/?id=589302607826562
1 - Klicken Sie auf Apps und wählen Sie dann Ihre App aus.
2 - Klicken Sie auf die Schaltfläche Einstellungen auf der linken Seite des Bildschirms.
3 - Klicken Sie in den Grundeinstellungen unter der Einstellungskonfiguration auf die Schaltfläche Plattform hinzufügen.
4 - Wählen Sie im Plattformdialog die Option Website.
5 - Geben Sie Ihre URL ein (localhost funktioniert hier).
6 - Fügen Sie in der Texteingabe "App-Domänen" Ihre Domain hinzu, die mit der in der URL übereinstimmt.
7 - Speichern Sie Ihre Einstellungen.
Dies funktioniert im Juni 2018, auch nach der HTTPS-Anforderung. Es scheint, dass eine Test-App kein https benötigt:
Erstellen Sie eine Test-App: https://developers.facebook.com/docs/apps/test-apps/
Befolgen Sie dann in der Test-App die einfachen Schritte in diesem Video: https://www.youtube.com/watch?v=7DuRvf7Jtkg
Angenommen, Sie haben Ihre App registriert als:
app.domain.com
Sie müssen nur die Datei / etc / hosts durch Hinzufügen ändern
127.0.0.1 dev01.app.domain.com
Ändern Sie dann Ihre Apache-Konfiguration
ServerName dev01.app.domain.com
und Apache neu starten.
Sie müssen Ihre URL in eine Variable einfügen, um sie bei einigen Aufrufen als XML-Parameter verwenden zu können:
<fb:login-button registration-url="http://<?=$URL?>/register" />
Ich habe nicht genug Glaubwürdigkeit, um die am besten gewählte Antwort zu kommentieren, aber zumindest in meiner Rails-Umgebung (mit 4) ist Rails s http://localhost:3000
nicht http://www.localhost:3000
. Als ich es geändert habe, http://localhost:3000
hat es gut funktioniert. Sie müssen keine Hosts-Datei bearbeiten.
Meine Lösung funktioniert in localhost einwandfrei ..... Für die Verwendung von Site-URLs http://localhost/
und für die Verwendung von App-Domänen localhost/folder_name
Rest ist alles gleich ....... funktioniert einwandfrei (obwohl in App Domain ein rotes Flag angezeigt wird .. App funktioniert einwandfrei)
Die Anwendung läuft in localhost: 3000 einwandfrei. Sie müssen nur die https-Adresse angeben, unter der die Anwendung im Produktionsmodus aktiv sein wird.
Option 2 ist die Bereitstellung der URL oder Ihrer Heroku-Website, auf der Sie eine Beispielanwendung im Produktionsmodus haben können.
Letztes Update: Sie müssen keine URLs angeben, wenn Sie es in der Entwicklung testen. Sie können die Felder leer lassen. Stellen Sie sicher, dass sich Ihre App im Entwicklungsmodus befindet. Wenn nicht, schalten Sie den Status live aus.
Es ist nicht erforderlich, eine Website-URL, App-Domains oder eine gültige Weiterleitung von uri anzugeben.