Ich plane, von meinem lokalen Host aus eine Verbindung zum Facebook-Chat herzustellen. Ich muss den Sitzungsschlüssel von Facebook erhalten. Wenn ich die Site-URL als gebe localhost:8080
oder ip-address:8080
es nicht funktioniert.
Ich habe über das Einrichten von zwei Apps mit zwei verschiedenen API-Schlüsseln gelesen, von denen einer auf dev m / c und einer auf localhost ausgeführt wird, aber ich habe es nicht ganz verstanden.
Kann jemand erklären, wie man eine Facebook-App auf localhost ausführt?
facebook
localhost
facebook-chat
begeistert
quelle
quelle
Antworten:
Ich habe vor einiger Zeit ein Tutorial darüber geschrieben.
Der wichtigste Punkt ist die "Site-URL":
Wo die Ordnerstruktur so etwas wie:
EDIT:
Kavya : Wie erkennt der FB-Server meinen lokalen Host auch ohne IP oder Port?
Ich glaube nicht , das nichts mit Facebook zu tun hat, ich denke , da die iframe -
src
Parameter von Client-Seite geladen werden Ihre lokale URL behandeln würde , als ob Sie es auf Ihrem Browser direkt setzen.Haben Sie beispielsweise eine Datei mit Inhalten auf Ihrem Online-Server (z. B.
online.php
):Und in Ihrem localhost-Stammverzeichnis haben Sie die Datei
test.php
:Besuchen
http://your_domain.com/online.php
Sie jetzt, Sie werden den Inhalt Ihrer localhost-Datei sehen!Aus diesem Grund funktionieren Echtzeitabonnements und das Deaktivieren von Rückrufen (um nur zu erwähnen) nicht mit lokalen Host- URLs! weil Facebook an diese URLs pingt (http-Anfragen sendet), aber der Facebook-Server diese URLs offensichtlich nicht in Ihre übersetzt!
quelle
http://localhost:8080/auth/index.html
und die Webseite, die den Fehlerhttp://localhost:8080/auth/index.html
ausgibt, ist und die Channelurl-Zeile lautet:channelUrl : '//localhost:8080/auth/channel.html',
Wenn Sie localhost verwenden:
Schreiben Sie in Facebook -> Einstellungen -> Basic im Feld "App Domains" "localhost" und klicken Sie auf "+ Plattform hinzufügen". Wählen Sie "Website".
Es werden zwei Felder "Mobile Site URL" und "Site URL" erstellt. In "Site URL" schreiben Sie erneut "localhost".
funktioniert bei mir.
quelle
Sie können auch die 'Hosts'-Datei bearbeiten und lokale Variationen Ihrer Domain erstellen.
Beispiel
Wenn Ihre echte Facebook-Anwendungsadresse "example.com" lautet, können Sie in Ihrer "hosts" -Datei, die auf "localhost" verweist, die Domain "localhost.example.com" (nur von Ihrem PC aus zugänglich) erstellen und Ihre lokale Website unter dieser Domain ausführen. Sie können Facebook auf diese Weise austricksen.
quelle
C:/Windows/System32/drivers/etc/hosts
oder unter Ubuntu um/etc/hosts
In den Grundeinstellungen Ihrer App ( https://developers.facebook.com/apps ) unter Einstellungen-> Basis-> Wählen Sie aus, wie Ihre App in Facebook integriert werden soll ...
Verwenden Sie "Site-URL:" und "Mobile Site-URL:", um Ihre Produktions- und 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.
quelle
2013 August. Facebook erlaubt es nicht, eine Domain mit Port für eine App festzulegen, zum Beispiel "localhost: 3000".
Sie können also https://pagekite.net verwenden, um Ihre
localhost:port
Domain auf die richtige Domain zu tunneln .Rails-Entwickler können http://progrium.com/localtunnel/ kostenlos nutzen.
quelle
Also habe ich das heute zum Laufen gebracht. Meine URL ist
http://localhost:8888
. Die Domain, die ich Facebook gegeben habe, ist localhost. Ich dachte, dass es nicht funktioniert, weil ich versucht habe, Daten mit derFB.api
Methode abzurufen. Ich bekam immer wieder einen "undefinierten" Namen und ein Bild ohne Quelle, hatte also definitiv keinen Zugriff auf das Diagramm.Später wurde mir klar, dass mein Problem wirklich darin bestand, dass ich nur ein erstes Argument an
/me
toFB.api
weitergab und keinen Token hatte. Sie müssen also dieFB.getLoginStatus
Funktion verwenden, um ein Token zu erhalten, das dem/me
Argument hinzugefügt werden sollte .quelle
Geben Sie einfach Ihre Canvas-URL als http: // localhost / app_path an .
quelle
Ok, ich bin mir nicht sicher, was mit diesen Antworten los ist, aber ich werde Sie wissen lassen, was für mich funktioniert hat, wie von einem erfahrenen Entwickler bei meiner Arbeit empfohlen. Ich arbeite in Ruby on Rails und verwende den JavaScript-Code von Facebook, um Zugriffstoken zu erhalten.
Problem: Um eine Authentifizierung durchzuführen, nimmt Facebook die URL aus Ihrer Adressleiste und vergleicht sie mit der Datei, die sie gespeichert haben. Sie erlauben Ihnen nicht, aus
localhost:3000
irgendeinem Grund zu verwenden. Sie können jedoch ein fertig konfektioniertes Domain - Namen wie verwendenyoursite.dev
durch einen lokalen Server ausgeführt wird und zeigtyoursite.dev
auf127.0.0.1:3000
oder wo auch immer Ihr localhost deutete auf.Schritt 1 : Installieren oder aktualisieren Sie Nginx
$ brew install nginx
(installieren) oder$ brew upgrade nginx
(aktualisieren)Schritt 2 : Öffnen Sie Ihre Nginx-Konfigurationsdatei
/usr/local/etc/nginx/nginx.conf
(normalerweise hier)/opt/boxen/config/nginx/nginx.conf
(wenn Sie Boxen verwenden)Schritt 3 Fügen Sie diesen Code in Ihren
http {}
Block einErsetzen Sie
proxy_pass
durch, wo immer Sie zeigen möchtenyoursite.dev
. In meinem Fall ersetzte es localhost: 3000 oder das Äquivalent127.0.0.1:3000
Schritt 4 : Bearbeiten Sie Ihre Hosts-Datei
/etc/hosts
auf dem Mac, um sie einzuschließenDiese Datei leitet Domains an localhost weiter. Nginx hört auf localhost und leitet um, wenn es einer Regel entspricht.
Schritt 5 : Jedes Mal, wenn Sie Ihre Entwicklungsumgebung in Zukunft verwenden, verwenden Sie die
yoursite.dev
in der Adressleiste, anstattlocalhost:3000
dass Facebook Sie korrekt anmeldet.quelle
Forward ist ein großartiges Tool für die lokale Entwicklung von Facebook-Apps. Es unterstützt SSL, sodass die Zertifizierungssache kein Problem darstellt.
https://forwardhq.com/in-use/facebook
HAFTUNGSAUSSCHLUSS: Ich bin einer der Entwickler
quelle
Sie müssen Ihre App so einrichten, dass sie über https für localhost ausgeführt wird
Sie können die hier angegebenen Schritte ausführen, um HTTPS unter Ubuntu einzurichten
https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-12-04
Sie müssen folgende Schritte ausführen:
Installieren Sie Apache (falls Sie nicht haben)
Erster Schritt: Aktivieren Sie das SSL-Modul
Schritt 2: Erstellen Sie ein neues Verzeichnis
Schritt 3: Erstellen Sie ein selbstsigniertes SSL-Zertifikat
Mit diesem Befehl erstellen wir sowohl das selbstsignierte SSL-Zertifikat als auch den Serverschlüssel, der es schützt, und legen beide in das neue Verzeichnis. Die wichtigste Zeile ist "Common Name". Geben Sie hier Ihren offiziellen Domainnamen oder, falls Sie noch keinen haben, die IP-Adresse Ihrer Site ein.
Schritt 4 - Richten Sie das Zertifikat ein
Suchen Sie die folgenden Zeilen und bearbeiten Sie diese mit Ihren Einstellungen
Fünfter Schritt: Aktivieren Sie den neuen virtuellen Host
quelle
Ein Trick:
Verwenden Sie MAMPPRO und erstellen Sie: Servername: die GENAUE Adresse Ihrer Website (z. B. helloworld.com) für Ihre Website auf Ihrer Festplatte
Auf Facebook: So können Sie auch Ihre ursprüngliche Site-URL behalten (zB: helloworld.com)
Jetzt verstehen Sie , dass , wenn Sie Ihre Website auf die Adressleiste eingeben Sie sind vor Ort ! ..und wenn Sie online sein möchten, inaktivieren Sie einfach den Server auf MAMP PRO ..
:) :)
quelle
Keine der obigen Antworten hat bei mir funktioniert. Ich verwende die FB API 2.5. Meins war eine Kombination von Problemen, die nach ihrer Lösung zum Erfolg führten
Es ist wahrscheinlich nicht ideal, da sich die dynamische IP ändert, und man könnte wahrscheinlich DynDNS oder ähnliches verwenden, um die IP "statischer" zu machen, aber es hat bei mir funktioniert
quelle
In meinem Fall stellte sich heraus, dass Chrome die CORS-Anfrage von localhost: 4200 an die Facebook-API-Website blockiert. Ausführen von Chrome mit dieser Einstellung: "YOUR_PATH_TO_CHROME \ Google \ Chrome \ Application \ chrome.exe" --disable-web-security --user-data-dir = "c: / chrome hat bei der Entwicklung wie ein Zauber funktioniert. Auch ohne lokalen Host zu den Einstellungen der Facebook-App hinzugefügt.
quelle