web-dev-qa-db-fra.com

Application Facebook - Le domaine de cette URL n'est pas inclus dans les domaines de l'application. Pourquoi?

Lorsque j'essaie de me connecter avec une application Facebook, j'obtiens l'erreur suivante:

Impossible de charger l'URL: le domaine de cette URL n'est pas inclus dans les domaines de l'application. Pour pouvoir charger cette URL, ajoutez tous les domaines et sous-domaines de votre application au champ Domaines de l'application dans les paramètres de votre application.

Comme vous pouvez le voir sur l'image suivante:

enter image description here

URL: http://www.facebook-php-test.com

Vous trouverez ci-dessous la configuration que j'ai définie sur mon application Facebook.

(Remarque: pour des raisons de confidentialité, j'ai modifié les valeurs de App ID et App Secret sur l'image)

enter image description here

Le code de cet exemple d'application de base se trouve sur ce référentiel GitHub:

https://github.com/zeuscronos/facebook-php-test.com

Je ne sais vraiment pas pourquoi il est dit que the domain of this URL isn't included in the app's domains alors qu’il est réellement là.

Sur le terrain: App Domains j'ai essayé avec les deux domaines en même temps:

  • facebook-php-test.com
  • www.facebook-php-test.com

mais pas de succès.

L'URL de connexion générée est la suivante:

https://www.facebook.com/v2.10/dialog/oauth?client_id=012345678901234&state=d3758e484d539ebd6505427aaf1; com% 2Ffb-callback.php & scope = email% 2Cuser_friends% 2Cuser_photos

J'ai configuré le domaine: facebook-php-test.com en tant qu'hôte virtuel sur un serveur Apache.

Je dois dire que j'ai beaucoup travaillé avec le Facebook PHP SDK et que c'est la première fois que je lutte avec cela. En fait, j'ai eu ce problème avec une autre grosse application avec laquelle je travaillais, puis après quelques heures à tenter de résoudre le problème, j'ai créé cette application factice pour essayer de déterminer la cause du problème.

J'ai essayé beaucoup de choses sans succès.

Une idée sur la façon de résoudre ce problème?

Merci.

EDIT 01

Suite à la suggestion de Mr.Geeker commentaire, j’ai fait ce qui suit ...

Ajout du produit: Facebook Login et configuré comme ci-dessous:

enter image description here

Enfin, je pouvais enfin aller de l'avant et on m'a demandé des autorisations:

enter image description here

Mais malheureusement, après avoir accordé des autorisations, j'ai obtenu ce qui suit:

enter image description here

Une idée sur la façon de continuer à partir de ce point?

EDIT 02 - SOLUTION

J'ai fini de désactiver l'option: Use Strict Mode for Redirect URIs sous Client OAuth Settings. Ils disent que c'est strongly recommended a cette fonctionnalité On mais je ne pouvais pas que cela fonctionne avec cette On.

A propos, j'ai aussi désactivé: Client OAuth Login car mon application ne l'utilise pas.

Enfin, la seule fonctionnalité que j'ai activée sous: Client OAuth Settings est: Web OAuth Login.

4
Angel
Facebook définit maintenant certaines fonctionnalités comme des plugins. Dans la partie gauche, sélectionnez Produits et ajoutez un produit. Puis sélectionnez Facbook Login. Assez simple à partir de là, vous verrez toutes les options de Oauth apparaître.

Comme initialement répondu ici

2
Mr.Geeker

En mars 2018, Facebook a mis à jour l'API et a forcé toutes les applications à garder le mode strict activé.

Pour que cela fonctionne, vous devez inclure l'URL de rappel complète dans le champ Valeurs URI de redirection OAuth valides. Si vous redirigez vers " https://www.example.com/facebook/callback ", l'URI complet doit être inclus (sans paramètre):

 enter image description here

Le domaine doit être défini dans les domaines de l'application et les champs URL du site Web sur la page des paramètres de base:

 enter image description here

Si aucune de ces solutions ne fonctionne et que le message "Impossible de charger l'URL: le domaine de cette URL n'est pas inclus dans les domaines de l'application". le message continue de s'afficher, vérifiez si vous disposez de la dernière version du SDK. Je pourrais le faire fonctionner après la mise à jour de PHP SDK de la version 5.5 à 5.6.2

2
Jorge Palacio

J'utilise PHP 5.5 et j'ai trouvé le bogue.

PHP API Facebook VERSION = '5.5.0', DEFAULT_GRAPH_VERSION = 'v2.9' ajoutait l'URI? Code = XXX dans ma page de rappel comme ceci:

mydomainExample.com/callbackFacebook.php? code = XXXXXXX

et j'ai changé le code source pour supprimer la chaîne après '?'. Maintenant, l'URL de rappel est seulement 

mydomainExample.com/callbackFacebook.php

La correction peut être faite dans le fichier Facebook/Helpers/ FacebookRedirectLoginHelper.php dans la fonction getAccessToken . J'ai ajouté un ' if ' comme ci-dessous dans la ligne 226 et le numéro est parti:

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