Facebook OAuth “Le domaine de cette URL n’est pas inclus dans le domaine de l’application”

Permettez-moi de commencer par dire que j’ai cherché une réponse à cette question pendant un certain temps…

J’essaie de configurer Facebook OAuth pour qu’il fonctionne avec mon application développée localement sur ma machine. Tout fonctionnait parfaitement avec l’autorisation de Facebook JUSQU’À ce que je passe de l’utilisation de localhost à un autre nom de domaine (toujours local sur ma machine). Je reçois maintenant 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 d’application dans les parameters de votre application.

Mon fichier hosts contient 127.0.0.1 photovote.dev (fonctionne parfaitement)

Ma redirection dans mon application (en utilisant Socialite) est http://photovote.dev/auth/facebook/callback

Dans mes parameters d’application Facebook …

  • mon domaine d’application est photovote.dev
  • mon URL de site est http://photovote.dev/
  • mon adresse URI de redirection OAuth valide est http://photovote.dev/auth/facebook/callback

L’URL au moment du message d’erreur est ..

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

Je ne sais plus quel est le problème …

Capture d’écran 1
Capture d'écran

Capture d’écran 2 entrer la description de l'image ici

Cela se produit généralement si vous avez entré des informations erronées lors de la création de l’application sur Facebook. Ou avez-vous modifié une URL d’une application existante?

Pouvez-vous s’il vous plaît revérifier les parameters de votre application dans cette page?

https://developers.facebook.com/apps

  1. Sélectionnez la bonne application et cliquez sur le bouton Modifier.

  2. Vérifiez que les URL et les chemins d’access sont correctement entrés et qu’ils pointent vers le site où vous avez installé le plug-in Ultimate Facebook.

Dans le cas où quelqu’un tombe sur cela et cherche ces parameters (comme je l’étais)

Vous devez

  1. Sur le côté gauche, cliquez sur “+ Ajouter un produit” et sélectionnez “Connexion Facebook” (il était en haut pour moi)
  2. Voir les nouveaux parameters disponibles sur le côté gauche
  3. Vous allez maintenant avoir ces parameters OAuth sur “Paramètres du produit”

entrer la description de l'image ici

Informations supplémentaires: Assurez-vous d’append l’URL de rappel comme http://localhost:3000 dans le champ Valid OAuth redirect URIs de la page des parameters de la connexion Facebook.

J’ai eu le même problème. Je l’ai résolu en ajoutant mon URI de redirection OAuth en tant qu’argument à l’appel de la fonction getAccessToken:

 $redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback") 

Si aucun argument n’est envoyé dans cette fonction, le SDK génère l’URI de redirection par lui-même, ce qui devrait fonctionner, mais dans mon cas, ce n’est pas le cas.

J’espère que cela aide quelqu’un.

Assurez-vous que votre application est publique. Cliquez sur + Ajouter un produit Maintenant, accédez aux produits => Connexion à Facebook Effectuez les opérations suivantes:

URI de redirection OAuth valides: example.com/

URL de rappel de l’autorisation de retrait: https://example.com/facebookapp http://unicodeitsolutions.com/

Voici ce que j’ai fait pour résoudre ce problème: entrer la description de l'image ici

Fondamentalement:

1) Activer ” Login OAuth du navigateur intégré

2) Désactivez ” Utiliser le mode ssortingct pour redirect les URI ” et entrez un URI de redirection comme je l’ai fait.

3) Laissez toutes les options telles quelles.

4) Enregistrez vos modifications.

5) Profitez 🙂

J’ai eu le même problème, et cela provenait d’un mauvais identifiant client_id / Facebook App.

Avez-vous changé votre application Facebook en “public” ou “online”? Lorsque vous le faites, Facebook crée une nouvelle application avec un nouvel identifiant d’application.

Vous pouvez comparer la valeur du paramètre “client_id” dans l’URL à celle de votre tableau de bord Facebook.

Cliquez ici Code Project ! Son exemple de projet de code. Ça marche pour moi

entrer la description de l'image ici

J’ai eu le même problème,

Je viens d’append le lien de mon adresse locale http: //localhost/Facebook%20Login%20Test.html à l’ Site URL dans le paramètre de mon application https://developers.facebook.com/apps .

Maintenant ça marche très bien 🙂 J’espère que c’était utile;)

À partir de 2017-10.

Solution qui a résolu mon problème.

Actuellement, FB rend cette surprise.

Paramètres du client OAuth de l’application. Assurez-vous que Client et Web OAuth Login sont activés

entrer la description de l'image ici

Les parameters à régler se trouvent ici https://developers.facebook.com/apps/%5Byour_app_itentifier%5D/fb-login/ .

La barre oblique est importante. Ils doivent correspondre dans votre code d’application et dans les parameters d’administration FB. Donc, ceci est une configuration quelque part dans votre code (voir ci-dessous comment obtenir un nom de domaine pour une application de développement):

 { callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash } 

et ici

entrer la description de l'image ici

Pour obtenir un nom de domaine pour une application sur une machine Windows locale, modifiez le fichier host . Les noms personnalisés sont bons pour se débarrasser de tous les localhost:8080 , 0.0.0.0:30303 , 127.0.0.0:8000 , etc. Certains services tiers, tels que FB, ne vous permettent parfois pas d’utiliser les noms 127.0.0.0 .

Le fichier hosts Windows 10 est ici:

 C:\Windows\System32\drivers\etc\hosts 

Sauvegarde du fichier initial, création d’une copie avec un nom différent (ne fonctionne pas dans Windows CMD natif. J’utilise Git pour Windows , il comporte de nombreuses commandes Unix)

 $ cp hosts hosts.bak 

Ajouter ceci dans les hosts

 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 

Pour se débarrasser de la partie port :3000 , par exemple, configurez NGINX.

La façon dont j’ai résolu le problème: je suis allé dans la zone de texte Valid OAuth Redirect URIs et j’ai défini l’URL exacte , pas seulement le domaine :

avant: https://my-website.com

après: https://my-website.com/facebookoauth/facebooklogin

(l’URL peut être différente dans votre cas, vérifiez-la dans la barre d’adresse du navigateur).

Cela était dû au paramètre Use Ssortingct Mode for Redirect URIs, qui était verrouillé dans la position Yes.

La plupart du temps, il arrive sans insérer correctement l’ URL de redirection OAuth valide dans la section produit du tableau de bord FB. Je suggère de suivre mes étapes ci-dessous

01. Vérifiez que le réglage de base de l’application est correct avec une photo ci-dessous

entrer la description de l'image ici

02. vérifier si vous avez ajouté un produit

Sinon, vous pouvez facilement append un produit en cliquant sur + sinus comme je le montre dans le tableau ci-dessous.

Si oui, il suffit d’entrer dans les parameters du produit. entrer la description de l'image ici

03. Vérifier si vous avez fourni une URL de redirection OAuth valide

Son simple signifie ce qui devrait après la connexion.Il n’est pas autre que votre rappel URl.Vous pouvez voir dans ma photo ci-dessous que j’ai ajouté plusieurs URL de redirection. entrer la description de l'image ici

  1. Avez-vous d’autres problèmes? Regardez ma vidéo -> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s

Rien n’a vraiment fonctionné pour moi, jusqu’à ce que je mette à jour la version du SDK que j’utilisais. J’ai commencé avec 5.0. Même pas 5.4.0 ne fonctionnerait pas non plus. Lorsque j’ai mis à jour vers la version 5.6.2, cela a fonctionné sans problème, même s’il n’y avait rien dans les changelogs qui soit pertinent!

Cette option doit être activée dans le portail:

entrer la description de l'image ici

Au cas où cela aiderait quelqu’un d’autre, cela a commencé pour moi sur un ancien site lorsque “URI de redirection OAuth valide” est devenu obligatoire. Le site utilisait toujours le SDK PHP V4 et le problème a été résolu pour moi en effectuant une mise à niveau vers le SDK V5.

Dans la section Domaine d’application, vous écrivez votre domaine d’application, mais vous devez également append votre domaine de connexion, c’est-à-dire le nom de la page HTML où vous demandez à l’utilisateur de se connecter. Dans mon cas, je le testais sur localhost et le chemin de connexion était localhost / login. Si je ne mets que http://localhost.com dans la section domaine d’application, j’obtiens cette erreur. Mais après avoir ajouté http: //localhost/login.com , l’erreur a été corrigée. Les parameters de l’application ont également été modifiés dans une nouvelle version du SDK, dans laquelle il n’existe aucune option pour le routage de redirection OAuth. Vous devez assigner l’itinéraire de redirection directement du côté serveur, après avoir réussi à obtenir le jeton OAuth.

Cela a fonctionné pour moi:

Voici la principale chose à comprendre: Facebook vérifie toujours le domaine ” WWW “. Donc, assurez-vous que http://www.your_domain.dev travaille d’abord sur votre navigateur.

Il est possible que si vous avez plusieurs hôtes virtuels sur votre serveur local, d’autres hôtes virtuels remplacent ” http://www.votre_domaine.dev “. Alors s’il vous plaît vérifier cela. Apache choisira la PREMIÈRE définition du domaine (ou des ports, ou quelque chose dans ces termes – je ne suis pas expert en la matière, mais j’ai appris par des erreurs). Une solution simple et rapide à cette substitution d’hôte virtuel consiste à placer “la définition d’hôte virtuel http://www.your_domain.dev tout en haut du fichier” httpd-vhosts.conf “.

Allez dans ” /apache/conf/https-vhosts.conf ” et mettez-le tout en haut du fichier:

   Options FollowSymLinks Indexes AllowOverride All Order deny,allow allow from All  ServerName your_domain.dev ServerAlias your_domain.dev DocumentRoot "C:/your_app_folder_path/"  ###### FOR SSL #####  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"  Options All AllowOverride All Require all granted   

Suivant: Si vous utilisez le système Windows, éditez votre fichier “hosts” dans “C: \ Windows \ System32 \ drivers \ etc” en ajoutant deux lignes:

 127.0.0.1 your_domain.dev 127.0.0.1 www.your_domain.dev 

Suivant: Redémarrez votre serveur Apache et tout devrait fonctionner maintenant.


J’espère que cela vous aidera et vous fera gagner du temps. J’ai perdu presque toute une journée à chercher sur le Web et à tirer mes cheveux et je n’ai rien trouvé de bon jusqu’à ce que je trouve ça.

Facebook a récemment désactivé le bouton bascule ” Utiliser le mode ssortingct pour redirect les URI “. Vous devez donc append l’URI exacte qui est appelée lorsque vous appuyez sur le bouton de connexion. Pour mon cas, c’était comme sur la capture d’écran. Cela a résolu le problème pour moi 🙂

entrer la description de l'image ici

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 d’application dans les parameters de votre application.

J’ai eu ce problème aujourd’hui, je trouve la documentation de Facebook et le SDK irrespectueux et arogant envers les autres développeurs pour le moins.

En plus d’avoir les “domaines d’application” dans deux endroits différents sans beaucoup d’informations (3 si vous ajoutez une plate-forme “Web”), vous devez également accéder aux applications / facebook / parameters et append votre URL de redirection sous Valid UAuth Redirect URIs

L’erreur ne dit rien sur les parameters oauth.

Cette même erreur sur Facebook m’est arrivée dans l’environnement de production. La raison était que j’avais 2 applications enregistrées avec Facebook (Local, Production) mais j’ai codé en dur l’ID de l’application locale dans le code source et j’ai oublié de la désactiver pour l’ID de l’application Production avant le déploiement.

Les meilleures pratiques imposent de ne pas avoir l’ID de l’application codée en dur dans le code source, mais si vous le faites, ne correspond pas à vos différents identifiants d’application Facebook, comme je l’ai fait par erreur.

Utiliser mon propre serveur local.

Il suffit d’append http://localhost/my-site tant qu’URL dans:

https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/

travaillé pour moi

Le problème et les réponses ne cessent de changer alors que FB renforce la procédure de connexion. Aujourd’hui, j’ai commencé à recevoir ce message d’horreur “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 dans le champ Domaines d’application de vos applications.”

La réponse était: maintenant, FB veut la redirection complète uri. Donc, pour moi, où il était juste https://www.example.com, il fallait maintenant https://www.example.com/auth/facebook/callback . Cela doit aller dans le champ “URI de redirection OAuth valide” (Developer / Facebook login-> setting)

Connexion Facebook -> Paramètres -> URI de redirection OAuth valides -> insérez les domaines de votre URL de redirection, rappelez-vous que vous devez append «https» ou http. Par exemple: si votre URL de redirection est https://xxx.xxx.com/path/callback.do , il vous suffit d’entrer https://xxx.xxx.com/ , c’est bon pour moi.

première étape: utilisez toutes les URL de certificate https://example.in ou ssl, n’utilisez pas http://example.in

deuxième étape: réglage de l’application faceboook-> paramètre de base-> append votre domaine ou sous-domaine

troisième étape: paramètre de connexion de l’application faceboook-> URI de redirection OAuth valides-> ajoutez votre URL de redirection complète après la connexion

quasortingème étape: réglage de l’application faceboook-> paramétrage avancé-> gestionnaire de domaine-> ajoutez votre nom de domaine

faites toutes ces étapes puis utilisez votre identifiant d’application, la version de l’application, le secret de l’application pour la configuration

Dans mon cas, ce que je devais faire, c’était d’activer uniquement le login Embedded Browser OAuth.

entrer la description de l'image ici

La plupart des réponses concernent l’ajout de l’URL au domaine de l’application, mais lorsque vous travaillez pour une entreprise, vous ne disposez pas de ces access.Pour ces raisons, vous pouvez contourner ce problème en créant un hôte virtuel et en créant une entrée hôte.


ajoutez ceci dans le fichier hôte (/ etc / hosts) 127.0.0.1 http://www.votre_domaine.com

créer un hôte virtuel. Je l’ai utilisé pour l’hôte virtuel apache

Webmaster ServerAdmin @ localhost nom_serveur http://www.votre_domaine.com

  ProxyPass / http://localhost:5006/ RewriteMap lc int:tolower LogLevel debug