Facebook-Entwicklung in localhost


177

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

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.


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


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/

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


9

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


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


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.


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.


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.


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


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.


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.



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" />

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.


2

app domain : localhost

site URL : http://localhost:4440/

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


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)


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


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


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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.