Beim Versuch, mich mit einer Facebook-App anzumelden, wird die 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.
Wie Sie auf dem folgenden Bild sehen können:
URL: http://www.facebook-php-test.com
Unten ist die Konfiguration, die ich in meiner Facebook-App festgelegt habe.
( Hinweis: aus Datenschutzgründen habe ich die Werte für App ID
und App Secret
auf dem Bild geändert)
Der Code für diese grundlegende Beispielanwendung befindet sich in diesem GitHub-Repository:
https://github.com/zeuscronos/facebook-php-test.com
Ich weiß wirklich nicht, warum dort the domain of this URL isn't included in the app's domains
steht, wenn es tatsächlich da ist.
Auf dem Feld: App Domains
Ich habe es mit beiden Domains gleichzeitig versucht:
aber kein erfolg.
Die generierte Anmelde-URL lautet wie folgt:
Ich habe die Domain facebook-php-test.com
als virtuellen Host auf einem Apache-Server konfiguriert.
Ich muss sagen, dass ich viel mit dem Facebook PHP SDK
gearbeitet habe und dies ist das erste Mal, dass ich damit zu kämpfen habe. Eigentlich habe ich dieses Problem mit einer anderen großen Anwendung, mit der ich gearbeitet habe, bekommen, nachdem ich einige Stunden lang versucht hatte, das Problem zu lösen. Ich habe diese Dummy-Anwendung erstellt, um herauszufinden, woher das Problem stammt.
Ich habe viele Dinge ohne Erfolg versucht.
Irgendeine Idee, wie man das löst?
Vielen Dank.
EDIT 01
Auf Vorschlag von Mr.Geeker
comment habe ich folgendes gemacht ...
Produkt hinzugefügt: Facebook Login
und wie folgt konfiguriert:
Dann konnte ich endlich weitermachen und wurde um Erlaubnis gebeten:
Aber leider habe ich nach der Erteilung von Berechtigungen Folgendes erhalten:
Hast du eine Idee, wie du von diesem Punkt aus weitermachen kannst?
EDIT 02 - LÖSUNG
Ich habe das Deaktivieren der Option beendet: Use Strict Mode for Redirect URIs
unter Client OAuth Settings
. Sie sagen, es ist strongly recommended
hat diese Funktion On
, aber ich konnte dies nicht zum Laufen bringen mit dieser On
.
Übrigens habe ich auch deaktiviert: Client OAuth Login
, da meine App es nicht verwendet.
Die einzige Funktion, die ich unter Client OAuth Settings
aktivieren kann, ist: Web OAuth Login
.
Facebook hat nun einige Funktionen als Plugins. Wählen Sie auf der linken Seite Produkte aus und fügen Sie Produkt hinzu. Wählen Sie dann Facbook Login. Ziemlich direkt von hier aus werden alle Oauth-Optionen angezeigt.
Wie ursprünglich beantwortet hier
Im März 2018 aktualisierte Facebook die API und zwang alle Apps, den strikten Modus zu aktivieren.
Damit dies funktioniert, müssen Sie die vollständige Rückruf-URL in das Feld Gültige OAuth-Weiterleitungs-URIs eingeben. Wenn Sie zu " https://www.example.com/facebook/callback " umleiten, muss der vollständige URI (ohne Parameter) enthalten sein:
Die Domäne muss in den Feldern der App-Domänen und der Website-Website-URL auf der Seite mit den Grundeinstellungen festgelegt werden:
Wenn nichts davon funktioniert und "URL nicht geladen werden kann: Die Domäne dieser URL ist nicht in den Domänen der App enthalten." Die Meldung wird ständig angezeigt, Überprüfen Sie, ob Sie die neueste Version des SDK haben. Ich könnte es nach dem Update von de PHP SDK von Version 5.5 auf 5.6.2 zum Laufen bringen
Ich verwende PHP 5.5 und habe den Fehler gefunden.
Die PHP Facebook API-VERSION = '5.5.0', DEFAULT_GRAPH_VERSION = 'v2.9' fügte den URI? Code = XXX in meine Rückrufseite wie folgt hinzu:
mydomainExample.com/callbackFacebook.php? code = XXXXXXX
und ich habe den Quellcode geändert, um die Zeichenfolge nach '?' zu entfernen. Jetzt ist die Callback-URL nur noch
mydomainExample.com/callbackFacebook.php
Das Problem kann in der Datei Facebook/Helpers/ FacebookRedirectLoginHelper.php in der getAccessToken - Funktion behoben werden. Ich fügte ein " if " wie unten in Zeile 226 hinzu und das Problem ist weg:
$redirectUrl = $redirectUrl ?: $this->urlDetectionHandler->getCurrentUrl();
//the next 3 lines was added to avoid the bug (fixed)
if(strripos($redirectUrl, "?")){
$redirectUrl = substr($redirectUrl, 0, strripos($redirectUrl, "?"));
}
// At minimum we need to remove the state param
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl, ['state']);