Facebook-Entwicklung in localhost

177

Ich wollte nur wissen, ob es eine Möglichkeit gibt, Facebook-Anwendungen in localhost zu entwickeln.

Abhishek
quelle

Antworten:

246

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.

  • Erstellen Sie eine neue App unter https://developers.facebook.com/apps
  • (Neu 15.02.2012) Aktivieren Sie das WebsiteKontrollkä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".)
  • Setzen Sie das Feld Site-URL ( NICHT das Feld App-Domänen ) auf http: //www.localhost: 3000 (diese Adresse ist für Ruby on Rails, ändern Sie sie nach Bedarf).

Geben Sie hier die Bildbeschreibung ein

  • Geben Sie in Ihrem Anwendungsinitialisierer Code ein, um die Umgebung zu erkennen
    • Beispiel Rails 3-Code
      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.

Eric Hu
quelle
3
+ 1ed Das ist seltsam! Die Leute sagen, dass Sie den localhost nicht als App-URL hinzufügen können. Aber es funktioniert einfach bei mir. Danke dir!
Keyne Viana
15
Ist das bei Ihnen noch so? Ich kann anscheinend nicht localhost oder 127.0.0.1:5000 oder ähnliches zu meiner App-Domain für Facebook hinzufügen.
Pete
Ich habe gerade versucht, eine neue zu erstellen, und bin auf ein Problem mit einer ungültigen Domain gestoßen. Vielen Dank für den Fang
Eric Hu
1
@zoltarSpeaks Siehe meine aktualisierte Antwort. Sie müssen ein anderes Feld verwenden, nicht "App-Domain"
Eric Hu
1
Wird dies die config.omniauth von initializers / devise.rb überschreiben: facebook, 'APP_KEY', 'APP_SECRET' ,: scope => "email, offline_access .."?
verschwunden
26

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: //localhostdie App-Domain hinzu und lassen Sie sie leer

Stalin
quelle
Das funktioniert total. Auf unserer Seite des Zauns ist nichts nötig.
Godspeedelbow
10
Dies funktioniert nicht mehr. Sie erhalten den Fehler, dass keine Top-Level-Domains
hinzugefügt werden
20

Hier ist meine Konfiguration und sie funktioniert gut für die PHP-API:

App-Domain

   http://localhost

Seiten-URL

   http://localhost:8082/
gehandelt
quelle
1
musste diese beiden Texteingaben ausfüllen, damit localhost funktioniert
paulruescher
19

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

Alexei Levenkov
quelle
9

Facebook erlaubte keine 'localhost'-Rückruf-URL mehr für FBML-Facebook-Anwendungen

Sudantha
quelle
Stellen Sie sicher, dass in Ihren Facebook-Sicherheitseinstellungen "Sicheres Surfen" deaktiviert ist. Dadurch ist Ihr lokaler Host nicht verfügbar, wenn er aktiviert ist.
Supajb
9

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

JSV
quelle
1
Verifiziert, dass dies der beste Weg für eine localhost-Installation ist. Fügen Sie einfach die Basis-URL wie oben beschrieben in Ihre Entwicklungsumgebung ein - ohne http: // und Facebook wird sie für Sie anhängen. Einfaches Zeug! Vielen Dank Jay
Keade
1
Diese Lösung löste mein Problem, als ich auf localhost lief
Rola
8

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.

Martin T.
quelle
7

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.

Carter Medlin
quelle
5

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.

MartinL
quelle
funktioniert für win8.1 c: \ windows \ system32 \ drivers \ etc \ hosts. Möglicherweise müssen Sie den 'Host Resolver Cache' in Chrome löschen. URL =
chrome
5

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 Geben Sie hier die Bildbeschreibung ein

Abhinav bhardwaj
quelle
Dies trug dazu bei, das Problem voranzutreiben. Nachricht von FB vom 23/02/2018: Im März führen wir ein Sicherheitsupdate für Ihre App-Einstellungen durch, das Anrufe von URIs ungültig macht, die nicht im Feld Gültige OAuth-Umleitungs-URIs unten aufgeführt sind. Dieses Update erfolgt als Reaktion auf böswillige Aktivitäten Wir haben es auf unserer Plattform gesehen und möchten Ihre App oder Website schützen, indem wir einen neuen strengen Modus für die Umleitung von URIs benötigen.
Tim Tyler
1
Fb benötigt jetzt https für den Rückruf. Localhost unterstützt https nicht.
Huuthang
1
@huuthang so ist diese ganze Q / A veraltet.
RGB
3

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:

  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/

Hoffe das hilft.

Vasile Laur
quelle
3

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.

Snm Maurya
quelle
2

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" />
Juan Eduardo Castaño Nestares
quelle
2

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:3000nicht http://www.localhost:3000. Als ich es geändert habe, http://localhost:3000hat es gut funktioniert. Sie müssen keine Hosts-Datei bearbeiten.

Andrew Shenstone
quelle
2

app domain : localhost

site URL : http://localhost:4440/

arbeitete für mich mit der neuen Benutzeroberfläche.

sftsz
quelle
0

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)

fabelhaft
quelle
0

Gehen Sie einfach zum App-Dashboard unter der Registerkarte "Facebook-Anmeldung", klicken Sie auf "Einstellungen" und wählen Sie "HTTPs erzwingen". Nein, Einstellungen speichernGeben Sie hier die Bildbeschreibung ein

Jerome Blacq
quelle
0

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.

Geben Sie hier die Bildbeschreibung ein

vidur punj
quelle
0

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.

Geben Sie hier die Bildbeschreibung ein

Vigneshwaran Sivalingam
quelle
1
Beachten Sie, dass Sie sich von localhost auf dem Entwicklungscomputer anmelden können, wenn Sie Ihre App von "live" auf "development" umstellen. ALLE IHRE LIVE-BENUTZER können sich jedoch nicht mehr anmelden.
Webdevbyjoss
Ich habe das getan und es gab mir immer noch den Fehler und der fb-Knopf wurde nicht
angezeigt
Klicken Sie nach dem Erstellen der App auf die Schaltfläche "Test-App erstellen", um eine App nur zum Entwickeln / Testen zu erhalten. Ich musste immer noch "localhost" zu App-Domains hinzufügen.
Keine
@ J.Money Ich denke, es könnte jetzt geändert werden. Danke für die Information.
Vigneshwaran Sivalingam