web-dev-qa-db-fra.com

Facebook OAuth "Le domaine de cette URL n'est pas inclus dans le domaine de l'application"

Permettez-moi de commencer par dire que je cherche une réponse à cette question depuis un certain temps ...

J'essaie de configurer Facebook OAuth pour qu'il fonctionne avec mon application qui est développée localement sur ma machine. Tout fonctionnait parfaitement avec l'autorisation de Facebook jusqu'à ce que je sois passé de localhost à un autre nom de domaine (toujours local sur ma machine). Maintenant, l'erreur suivante apparaît.

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.

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

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

Dans mes paramètres d'application Facebook ...

  • mon domaine d'application est photovote.dev
  • l'URL de mon 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=XXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fphotovote.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_emailrd = 0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD

Je ne sais plus trop quel est le problème ...

Capture d'écran 1
Screen Shot

Capture d'écran 2 enter image description here

207
dangel

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

Pouvez-vous s'il vous plaît revérifier les paramètres 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 sont correctement entrés et pointent vers le site où vous avez installé le plug-in Ultimate Facebook.

60
Lei Lionel

Au cas où quelqu'un tomberait dessus et rechercherait ces paramètres (comme je l'étais)

Vous devez 

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

enter image description here

Informations supplémentaires: Assurez-vous d'ajouter l'URL de rappel similaire à http://localhost:3000 dans le champ Valid OAuth redirect URIs de la page des paramètres de Facebook Login.

187
Craig Lambie

J'ai eu le même problème. Je l'ai résolu en ajoutant mon adresse 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, cela ne fonctionnait pas.

J'espère que ça aide quelqu'un.

45
Swoot

Assurez-vous que votre application est publique . Cliquez sur + Ajouter un produit.

URI de redirection OAuth valides: example.com/

Supprimer l'URL de rappel: https://example.com/facebookapp http://unicodeitsolutions.com/

30
Sanjoy Kanrar

Voici ce que j'ai fait pour résoudre ce problème:  enter image description here

Fondamentalement: 

1) Activez "Connexion au navigateur intégré OAuth"

2) Désactivez "Utiliser le mode strict pour la redirection des URI" et entrez une redirection URI comme je l'ai fait. 

3) Laissez tout le reste des options en l'état. 

4) Enregistrez vos modifications.

5) Profitez de :)

18
bangbang

J'ai eu le même problème, et il venait d'un mauvais identifiant client/id/application Facebook.

Avez-vous basculé votre application Facebook vers "publique" ou "en ligne? Lorsque vous le faites, Facebook crée une nouvelle application avec un nouvel ID d'application.

Vous pouvez comparer la valeur du paramètre "client_id" dans l'URL avec celle de votre tableau de bord Facebook.

7

La façon dont j'ai résolu le problème: je suis allé dans la zone de texte Valeurs OAuth de redirection correctes et défini l'URL exact, pas uniquement le domaine

avant: https://my-website.com 

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

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

Cela était dû au paramètre Utiliser le mode strict pour les URI de redirection, qui était verrouillé à la position Oui.

6
Cosmin

Cliquez sur ici Code Project ! Son exemple de projet Code. Ça fonctionne pour moi

 enter image description here

5

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

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

Maintenant cela fonctionne bien :) J'espère que cela a été utile;)

4
iteb khayati

La plupart du temps, il ne s’agit pas d’insérer correctement valide l’URL de redirection OAuth dans la section produit du tableau de bord FB. Je suggère de suivre les étapes ci-dessous.

01 .Vérifiez que le réglage de base de l'application est correct avec l'image ci-dessous avec vous

 enter image description here

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

Sinon, vous pouvez facilement ajouter un produit de connexion en cliquant sur + sine, comme indiqué dans le paragraphe ci-dessous.

Si oui vient juste de se mettre à l’intérieur du réglage du produit .  enter image description here

03 .La vérification si vous avez fourni une URL de redirection OAuth valide

C’est simple ce qu’il faut après la connexion.Il n’est pas autre que votre appel de rappel URl.Vous pouvez voir dans ma photo ci-dessous que j’ai ajouté plusieurs URL de redirection .  enter image description here

  1. avoir un problème supplémentaire Regarder ma vidéo--> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s
4
Rumesh Madushanka

À partir de 2017-10. 

Solution qui a résolu mon problème.

Actuellement, ce FB rend cette surprise.

...paramètres de l'application OAuth du client. Assurez-vous que les informations de connexion Client et Web OAuth sont sur ...

 enter image description here

Les paramètres à ajuster se trouvent ici https://developers.facebook.com/apps/[votre_app_itentifier FA/fb-login/ .

La barre oblique finale est importante. Ils doivent correspondre dans le code de votre application et dans les paramètres d’administration du FB. Il s'agit donc d'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

 enter image description here

Pour obtenir un nom de domaine pour une application sur un ordinateur Windows local, modifiez le fichier Host. Les noms personnalisés sont utiles pour éliminer tous ces localhost:8080, 0.0.0.0:30303, 127.0.0.0:8000, etc. Certains services tiers, tels que FB, ne permettent parfois pas d'utiliser les noms 127.0.0.0.

Sous Windows 10, le fichier hosts est ici:

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

Sauvegarder le fichier initial, créer une copie avec un nom différent (ne fonctionne pas dans le CMD Windows natif. J'utilise Git pour Windows , il contient de nombreuses commandes Unix)

$ cp hosts hosts.bak

Ajouter ceci dans 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 vous débarrasser de la partie de port :3000, configurez NGINX, par exemple.

4
Green

Rien ne fonctionnait vraiment pour moi, jusqu'à ce que je mette à jour la version du SDK que j'utilisais. J'ai commencé avec 5.0. Même la version 5.4.0 ne fonctionnerait pas non plus. Lors de la mise à jour vers la version 5.6.2, cela fonctionnait parfaitement, même s’il n’y avait rien dans les listes de modifications qui était pertinent!

3
Ste_95

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

J'avais ce problème aujourd'hui, je trouve que la documentation de Facebook et le SDK sont irrespectueux et arogants envers les autres développeurs, c'est le moins que l'on puisse dire.

En plus d'avoir les "domaines d'application" dans deux emplacements différents sans trop d'informations (3 si vous ajoutez une plate-forme "Web"), vous devez également accéder à produits d'application/facebook login/settings et ajouter votre URL de redirection sous URI de redirection OAuth valides

L'erreur indique RIEN sur les paramètres oauth.

2
adrianTNT

Au cas où cela aiderait quelqu'un d'autre, cela a commencé pour moi sur un site plus ancien lorsque "Valid UA Redirect ORIs" est devenu obligatoire. Le site utilisait toujours le SDK V4 PHP et le problème a été résolu pour moi en mettant à niveau le SDK V5. 

2
Kenneth Spencer

Facebook a récemment désactivé le bouton bascule pour 'Utiliser le mode strict pour la redirection d'URI'. Vous devez donc ajouter à l'URI exact ce qui est appelé 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 :)

 enter image description here

2

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

 enter image description here

2

Dans la section Domaine de l’application, vous écrivez votre domaine d’application, mais vous devez également ajouter 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 la route de connexion était localhost/login. Si je mets seulement http://localhost.com dans la section Domaine de l'application, j'obtiens cette erreur. Mais après avoir ajouté http: //localhost/login.com , l'erreur a été corrigée. ainsi que les paramètres de l'application ont été modifiés dans la version plus récente du SDK, dans laquelle il n'y a aucune option pour la route de redirection OAuth. Vous devez attribuer la route de redirection directement du côté serveur, après avoir réussi à obtenir le jeton OAuth.

1
Anum Sheraz

Dans mon cas, ce que je devais faire, c’est d’activer uniquement la connexion du navigateur intégré OAuth}.

 enter image description here

1
sh6210

Cela a fonctionné pour moi:

Voici l'essentiel à comprendre: Facebook recherchera toujours le domaine "WWW". Assurez-vous donc que www.votre_domaine.dev fonctionne correctement sur votre navigateur. 

Il est possible que si vous avez plusieurs hôtes virtuels sur votre serveur local, un autre hôte virtuel remplace " 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 ce sens - je ne suis pas un expert en la matière, mais j'ai appris par erreur) . "www.votre_domaine.dev définition de l'hôte virtuel tout en haut du fichier" httpd-vhosts.conf ".

Allez sur " /Apache/conf/https-vhosts.conf " et placez-le tout en haut du fichier:

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

Suivant: / Si vous utilisez le système Windows, modifiez votre fichier "hôtes" 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 une journée entière à chercher sur le Web et me tirais les cheveux et je ne trouvais rien qui me soit utile tant que je n'avais pas trouvé cela.

1
Albo Best

Cette même erreur de 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 que j'avais codé en dur l'ID de l'application locale dans le code source et que j'avais oublié de le remplacer par l'ID de l'application de production avant le déploiement.

La meilleure pratique dicte que vous ne devriez pas avoir l’ID de l’application codé en dur dans le code source, mais si vous le faites, ne faites pas correspondre les différents identifiants de vos applications Facebook comme je l’ai fait par erreur.

0
Jimmy Shaw

Utiliser mon propre serveur local.

Ajoutant simplement http://localhost/my-site en tant qu'URL dans:

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

a travaillé pour moi. 

0
Reece Kenney

première étape: utiliser tous https://example.in ou l'URL du certificat ssl, ne pas utiliser http://example.in

deuxième étape: configuration de l'application faceboook-> configuration de base-> ajouter votre domaine ou sous-domaine

troisième étape: Paramètre de connexion de l'application .bo. Faceboook -> URI de redirection OAuth valides -> ajouter votre URL de redirection tout après la connexion

quatrième étape: Paramètre de l’application Faceboook -> Paramétrage avancé -> Gestionnaire de domaine -> Ajouter votre nom de domaine 

effectuez toutes ces étapes, puis utilisez votre identifiant d'application, votre version d'application et le secret de l'application pour la configuration.

0
ganesh avhad

Le problème et les réponses ne cessent de changer à mesure 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 au champ Domaines de l'application dans les paramètres de votre application."

La réponse était: maintenant, FB veut la totalité de la redirection uri. Donc, pour moi, là où il n’était que https://www.example.com il veut maintenant https://www.example.com/auth/facebook/callback . Cela doit aller dans le champ "URI de redirection OAuth valides" (développeur/login Facebook-> paramètre)

0
Peter Robinson