it-swarm.com.de

Facebook OAuth "Die Domain dieser URL ist nicht in der Domain der App enthalten"

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 ...

  • meine App-Domain ist photovote.dev
  • meine Site-URL lautet http://photovote.dev/
  • meine gültigen OAuth-Weiterleitungs-URIs sind http://photovote.dev/auth/facebook/callback

Die URL zum Zeitpunkt der Fehlermeldung lautet ..

https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fphotovote.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_type=code = 0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD

Ich bin ratlos, was das Problem ist ...

Screenshot 1
Screen Shot

Screenshot 2 enter image description here

207
dangel

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

  1. Wählen Sie die richtige App aus und klicken Sie auf die Schaltfläche Bearbeiten.

  2. Ü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.

60
Lei Lionel

Falls jemand darauf stößt und nach diesen Einstellungen sucht (wie ich es war)

Sie müssen 

  1. Klicken Sie auf der linken Seite auf "+ Produkt hinzufügen" und wählen Sie "Facebook Login" (es war um Für mich oben).
  2. Sehen Sie sich die neuen Einstellungen auf der linken Seite an
  3. Sie haben jetzt diese OAuth-Einstellungen für diese "Produkteinstellungen".

enter image description here

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

187
Craig Lambie

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.

45
Swoot

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 http://unicodeitsolutions.com/

30
Sanjoy Kanrar

So habe ich dieses Problem gelöst:  enter image description here

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 :)

18
bangbang

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.

7

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.

6
Cosmin

Klicken Sie auf here Code Project ! Sein Code-Projektbeispiel. Es arbeitet für mich

 enter image description here

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;)

4
iteb khayati

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.

 enter image description here

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 .  enter image description here

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 .  enter image description here

  1. habe noch ein Problem weiter Sehen Sie sich mein Video an :--> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s
4

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...

enter image description here

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

enter image description here

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.

4
Green

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!

3
Ste_95

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.

2
adrianTNT

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. 

2
Kenneth Spencer

Facebook hat kürzlich den Umschaltknopf für 'Strict-Modus für Umleitungs-URIs' deaktiviert. Sie müssen also genau den URI angeben, der beim Klicken auf die Login-Schaltfläche aufgerufen wird. Für meinen Fall war es wie im Screenshot gezeigt. Es hat das Problem für mich gelöst :)

 enter image description here

2

Diese Option sollte in Portal aktiviert werden:

 enter image description here

2

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.

1
Anum Sheraz

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']);

1
Chevelle

In meinem Fall musste ich nur das Embedded Browser OAuth Loginaktivieren. _

 enter image description here

1
sh6210

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.

1
Albo Best

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.

0
Jimmy Shaw

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 

0
Reece Kenney

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

0
ganesh avhad

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.

0
Peter Robinson

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.

0
刘同彬