Lassen Sie mich zunächst sagen, dass ich seit einiger Zeit nach einer Antwort auf diese Frage gesucht habe ...
Ich versuche, Facebook OAuth so einzurichten, dass es mit meiner Anwendung funktioniert, die lokal auf meinem Computer entwickelt wird. Mit der Facebook-Autorisierung hat alles perfekt funktioniert, BIS ich von localhost
auf einen anderen Domainnamen umgezogen bin (der auf meinem Computer immer noch lokal ist). Jetzt wird folgende Fehlermeldung angezeigt.
URL kann nicht geladen werden: Die Domain dieser URL ist nicht in den Domains der App enthalten. Um diese URL laden zu können, fügen Sie alle Domains und Subdomains Ihrer App zum Feld App-Domains in Ihren App-Einstellungen hinzu.
Meine Hosts-Datei enthält 127.0.0.1 photovote.dev
(funktioniert perfekt)
Meine Weiterleitung in meiner App (mit Socialite) lautet http://photovote.dev/auth/facebook/callback
In meinen Facebook App Einstellungen ...
photovote.dev
http://photovote.dev/
http://photovote.dev/auth/facebook/callback
Die URL zum Zeitpunkt der Fehlermeldung lautet ..
Ich bin ratlos, was das Problem ist ...
Dies ist normalerweise der Fall, wenn Sie beim Erstellen der App in Facebook falsche Daten eingegeben haben. Oder haben Sie die URL einer bestehenden App geändert?
Können Sie bitte die Einstellungen Ihrer APP auf dieser Seite überprüfen?
https://developers.facebook.com/apps
Wählen Sie die richtige App aus und klicken Sie auf die Schaltfläche Bearbeiten.
Überprüfen Sie, ob die URLs und Pfade korrekt eingegeben wurden und auf die Site verweisen, auf der Sie das Ultimate Facebook-Plugin installiert haben.
Falls jemand darauf stößt und nach diesen Einstellungen sucht (wie ich es war)
Sie müssen
Zusätzliche Informationen: Stellen Sie sicher, dass die Callback-URL wie http://localhost:3000
im Feld Valid OAuth redirect URIs
auf der Einstellungsseite von Facebook Login hinzugefügt wird
Ich hatte das gleiche Problem. Ich habe es gelöst, indem ich den OAuth-Weiterleitungs-URI als Argument zum Aufruf der getAccessToken-Funktion hinzugefügt habe:
$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")
Wenn in diese Funktion kein Argument gesendet wird, generiert das SDK selbst die Umleitungs-URI, die funktionieren sollte, in meinem Fall jedoch nicht.
Hoffe das hilft jemandem.
Vergewissern Sie sich, dass Ihre App öffentlich ist. Klicken Sie auf + Produkt hinzufügen.
Gültige OAuth-Weiterleitungs-URIs: example.com/
Deauthorize Callback-URL: https://example.com/facebookapp
So habe ich dieses Problem gelöst:
Grundsätzlich gilt:
1) Aktivieren Sie "Embedded Browser OAuth Login".
2) Deaktivieren Sie "Strict-Modus für Umleitungs-URIs" und geben Sie eine Umleitung ein URI gefällt mir so.
3) Lassen Sie alle übrigen Optionen unverändert.
4) Speichern Sie Ihre Änderungen.
5) Genießen Sie :)
Ich hatte das gleiche Problem und es kam von einer falschen client_id/Facebook-App-ID.
Haben Sie Ihre Facebook-App auf "öffentlich" oder "online" umgestellt? Wenn Sie dies tun, erstellt Facebook eine neue App mit einer neuen App-ID.
Sie können den Parameterwert "client_id" in der URL mit dem Wert in Ihrem Facebook-Dashboard vergleichen.
So habe ich es behoben: Ich ging zum Textfeld Valid OAuth Redirect URIs) und stellte die genaue URL ein, nicht nur die Domain:
vor: https://my-website.com
nach: https://my-website.com/facebookoauth/facebooklogin
(Die URL kann in Ihrem Fall abweichen, überprüfen Sie sie in der Adressleiste des Browsers).
Dies wurde durch die Einstellung "Strengen Modus für Umleitungs-URIs verwenden" verursacht, die in der Position "Ja" gesperrt war.
Klicken Sie auf here Code Project ! Sein Code-Projektbeispiel. Es arbeitet für mich
Ich hatte das gleiche Problem,
Ich habe gerade den Link meiner lokalen Adresse http: //localhost/Facebook%20Login%20Test.html zu Site URL
in meiner Anwendungseinstellung https://developers.facebook.com/apps hinzugefügt.
Jetzt klappt es gut :) Ich hoffe das war nützlich;)
Meistens geschieht dies, wenn nicht die richtige gültige OAuth-Weiterleitungs-URL im Produktabschnitt des FB-Dashboards eingefügt wird. Ich schlage vor, die folgenden Schritte zu befolgen
01 .Überprüfen Sie, ob die Grundeinstellung der App mit dem folgenden Bild in Ordnung ist.
02 .prüfen, ob Sie ein Produkt hinzugefügt haben
Wenn nicht, können Sie das Anmeldeprodukt ganz einfach hinzufügen, indem Sie auf + sinus klicken, wie ich im unteren Bereich zeige.
Wenn ja, wurde die Produkteinstellung gerade erreicht .
03 .Die Prüfung, ob Sie eine gültige OAuth-Weiterleitungs-URL angegeben haben.
Es bedeutet einfach, was nach dem Login geschehen soll. Es ist nicht anders, dass Ihr Rückruf URl.You in meinem folgenden Bild sehen kann. Ich habe mehrere Weiterleitungs-URLs hinzugefügt .
Stand 2017-10.
Lösung, die mein Problem gelöst hat.
Momentan macht diese FB diese Überraschung.
...Client-OAuth-Einstellungen der App. Stellen Sie sicher, dass die Anmeldung für Client und Web OAuth aktiviert ist...
Die Einstellungen, die Sie anpassen möchten, finden Sie hier https://developers.facebook.com/apps/[your_app_itentifier/fb-login/ .
Der nachfolgende Schrägstrich ist wichtig. Sie müssen in Ihrem App-Code und in den FB-Administratoreinstellungen übereinstimmen. Dies ist also eine Konfiguration irgendwo in Ihrem Code (siehe unten, wie Sie einen Domainnamen für eine Dev-App erhalten):
{
callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}
und hier
Um einen Domänennamen für eine App auf einem lokalen Windows-Computer zu erhalten, bearbeiten Sie die Host
-Datei. Benutzerdefinierte Namen sind gut, um alle diese localhost:8080
, 0.0.0.0:30303
, 127.0.0.0:8000
usw. loszuwerden. Einige Drittanbieter-Services wie FB können manchmal nicht 127.0.0.0
-Namen verwenden.
Unter Windows 10 ist die hosts
-Datei hier:
C:\Windows\System32\drivers\etc\hosts
Ursprüngliche Datei sichern, Kopie mit anderem Namen erstellen (Funktioniert nicht in nativem Windows-CMD. Ich verwende Git für Windows , es gibt viele Unix-Befehle).
$ cp hosts hosts.bak
Fügen Sie dies in hosts
hinzu.
127.0.0.1 myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1 www.myotherapp.io # In a browser http://www.myotherapp.io:2020
Um beispielsweise den Portteil :3000
loszuwerden, richten Sie NGINX ein.
Für mich funktionierte nichts, bis ich die SDK-Version, die ich verwendete, aktualisiert habe. Ich habe mit 5.0 angefangen. Nicht einmal 5.4.0 würde auch nicht funktionieren. Als ich auf 5.6.2 aktualisiert habe, funktionierte es einwandfrei, obwohl in den Changelogs nichts relevant war!
URL kann nicht geladen werden: Die Domain dieser URL ist nicht in der .__ der App enthalten. Domänen. Um diese URL laden zu können, fügen Sie alle Domänen und Unterdomänen hinzu Ihrer App in das Feld App Domains in Ihren App-Einstellungen.
Ich hatte diese Ausgabe heute, ich finde die Facebook-Dokumentation und das SDK gegenüber anderen Entwicklern respektlos und arogant, um es gelinde auszudrücken.
Neben den "App-Domains" an zwei verschiedenen Standorten ohne große Informationen (3, wenn Sie eine "Web" -Plattform hinzufügen), müssen Sie auch unter App-Produkte/Facebook-Login/Einstellungen Ihre Weiterleitungs-URL hinzufügen unter Gültige OAuth-Weiterleitungs-URIs
Der Fehler sagt NICHTS zu den Einstellungen für die Nachbearbeitung aus.
Für den Fall, dass dies für alle anderen hilfreich ist, wurde dies auf einer älteren Website für mich als "Gültige OAuth-Weiterleitungs-URIs" obligatorisch. Die Site verwendete immer noch das V4 PHP SDK und das Problem wurde für mich durch ein Upgrade auf das V5 SDK behoben.
Im Abschnitt App-Domäne schreiben Sie Ihre App-Domäne. Sie müssen jedoch auch Ihre Login-Domäne hinzufügen, d. H. Den Namen der HTML-Seite, auf der Sie den Benutzer zur Anmeldung auffordern. In meinem Fall habe ich es auf localhost getestet und die Login-Route war localhost/login. Wenn ich nur http://localhost.com in den App-Domain-Abschnitt stelle, erhalte ich diesen Fehler. Nach dem Hinzufügen von http: //localhost/login.com wurde der Fehler jedoch behoben. und auch die App-Einstellungen wurden in der neueren Version des SDK geändert, in der es keine Option für die OAuth-Weiterleitungsroute gibt. Sie müssen die Umleitungsroute direkt vom Server zuweisen, nachdem Sie das OAuth-Token erfolgreich erhalten haben.
Ich hatte das gleiche Problem ..... das Problem ist in der Version PHP SDK 5.6.2 und das Update bearbeitete die folgende Datei:
facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php
diese Zeile ändern
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);
bis
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);
Das hat für mich funktioniert:
Hier ist die Hauptsache zu verstehen: Facebook wird immer nach der Domäne "WWW" suchen. Stellen Sie also sicher, dass www.Ihre_Domain.dev zuerst in Ihrem Browser ausgeführt wird.
Wenn Sie mehrere virtuelle Hosts auf Ihrem lokalen Server haben, überschreibt ein anderer virtueller Host möglicherweise " www.Ihre_Domain.dev ". Also bitte das überprüfen. Apache wählt die FIRST-Definition der Domäne (oder der Ports oder etwas in diesem Sinne - ich bin kein Experte, aber aus Fehlern gelernt) - Eine einfache schnelle Lösung für das Überschreiben dieses virtuellen Hosts ist zu setzen "www.ihr_domain.dev Definition des virtuellen Hosts ganz oben in der Datei" httpd-vhosts.conf ".
Gehen Sie zu " /Apache/conf/https-vhosts.conf " und setzen Sie dies ganz oben in die Datei:
<VirtualHost *:80>
<Directory "C:/your_app_folder_path/">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
allow from All
</Directory>
ServerName your_domain.dev
ServerAlias your_domain.dev
DocumentRoot "C:/your_app_folder_path/"
</VirtualHost>
###### FOR SSL #####
<VirtualHost *:443>
DocumentRoot "C:/your_app_folder_path/"
ServerName your_domain.dev
ServerAlias www.your_domain.dev
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
<Directory "C:/your_app_folder_path/">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Weiter: Wenn Sie ein Windows-System verwenden, bearbeiten Sie Ihre "hosts" -Datei in "C:\Windows\System32\drivers\etc", indem Sie zwei Zeilen hinzufügen:
127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev
Next: Starten Sie Ihren Apache-Server neu und alles sollte jetzt funktionieren.
Ich hoffe, dies wird Ihnen helfen und Ihre Zeit sparen. Ich verschwendete fast einen ganzen Tag im Web und zog mir die Haare raus und konnte nichts Nützliches finden, bis ich das gefunden hatte.
Der gleiche Facebook-Fehler ist mir in der Produktionsumgebung passiert. Der Grund war, dass ich zwei Apps bei Facebook (Local, Production) registriert hatte, die lokale App-ID jedoch hart in den Quellcode codiert und vergessen hatte, sie vor der Bereitstellung für die Produktions-App-ID auszutauschen.
Die beste Vorgehensweise besagt, dass Sie die App-ID nicht fest im Quellcode kodieren sollten. Andernfalls stimmen Sie nicht mit den verschiedenen Facebook-App-IDs überein, wie ich es versehentlich getan habe.
Verwendung meines eigenen lokalen Servers.
Fügen Sie einfach http://localhost/my-site
als URL hinzu:
https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/
arbeitete für mich
erster Schritt: Verwenden Sie alle https://example.in oder die URL des SSL-Zertifikats..... verwenden Sie nicht http://example.in .
zweiter Schritt: Faceboook-Anwendungseinstellung-> Grundeinstellung-> fügen Sie Ihre Domäne oder Subdomain hinzu
dritter Schritt: Faceboook-Anmeldeeinstellung für Anwendungen -> Gültige OAuth-Weiterleitungs-URIs -> Fügen Sie nach der Anmeldung Ihre gesamte Weiterleitungs-URL hinzu
vierter Schritt: faceboook-Anwendungseinstellung-> Voreinstellungseinstellung-> Domänenmanager-> fügen Sie Ihren Domänennamen hinzu
führen Sie all diesen Schritt aus und verwenden Sie dann Ihre Anwendungs-ID, die Anwendungsversion und das App-Secret für das Setup
Das Problem und die Antworten ändern sich ständig, da der Anmeldevorgang von FB strenger wird. Heute begann ich mit dieser Horrormeldung "Die Domäne dieser URL ist nicht in den Domänen der App enthalten. Um diese URL laden zu können, fügen Sie alle Domänen und Unterdomänen Ihrer App zum Feld" Anwendungsdomänen "in Ihren App-Einstellungen hinzu.
Die Antwort war: jetzt will FB die volle Umleitung. Für mich, wo es früher nur https://www.example.com war, will es jetzt https://www.example.com/auth/facebook/callback . Dies muss in das Feld "Gültige OAuth-Weiterleitungs-URIs" (Entwickler/Facebook-Login-> Einstellung) eingetragen werden.
Facebook Login -> Einstellungen -> Gültige OAuth Weiterleitungs-URIs -> Geben Sie die Domänen Ihrer Weiterleitungs-URL ein. Denken Sie daran, dass Sie "https" oder "http" hinzufügen sollten. Beispiel: Wenn Ihre Weiterleitungs-URL https://xxx.xxx.com/path/callback.do, müssen Sie nur https: //xxx.xxx.com/, für mich ist es in Ordnung.