J'ai écrit un jeu pour Facebook en utilisant Rails et jQuery. Depuis que j'ai commencé à utiliser le SDK Javascript de Facebook, utiliser localhost en tant que domaine d'application semblait bien fonctionner. J'ai pu tester mon jeu localement et sur Heroku.
Ces derniers jours, il semble que Facebook ait mis à jour son interface utilisateur pour les développeurs. Maintenant, si j'ajoute localhost en tant que domaine d'application, le message d'erreur suivant s'affiche:
Cela doit provenir de l'URL de la toile, de l'URL de la toile sécurisée, de l'URL du site, de l'URL du site mobile, de l'URL de l'onglet Page ou de l'URL de l'onglet de la page sécurisée. Vérifiez et corrigez les domaines suivants: localhost
De plus, mon jeu ne fonctionne plus localement et je reçois une erreur lorsque le SDK Javascript se connecte à l'utilisateur:
Code d'erreur de l'API: 191 Description de l'erreur de l'API: l'URL spécifiée n'est pas appartenant à l'application Message d'erreur: Invalid redirect_uri: Given L'URL n'est pas autorisée par la configuration de l'application.
Cela ne se produit pas lorsque je déploie mon jeu, car herokuapp.com est considéré comme un domaine d'application valide.
Comment suis-je censé développer et tester mon jeu si je ne peux plus utiliser localhost ou 127.0.0.1?
Le protocole semble changer constamment, et la réponse acceptée ne m'a pas fonctionné aujourd'hui. Au cas où cela aiderait d'autres chercheurs, voici ce qui a fonctionné pour moi:
1.) Au centre, sous la première boîte d’options, cliquez sur "+ Ajouter une plate-forme" et choisissez "Site Web" (ou tout autre choix approprié pour votre application.)
2.) Dans la zone qui s'affiche pour le site Web que vous venez d'ajouter: URL du site: http://localhost:3000/
3.) Dans la zone ci-dessus, que (Paramètres => Basique): Domaine d'application: localhost
4.) En bas à droite, cliquez sur "Enregistrer les modifications".
5.) Assurez-vous que l'ID de l'application est copié et collé correctement dans votre code. (L'ID est dans la première case de cette page si vous en avez de nouveau besoin.)
Vous pouvez toujours tester votre application sans la déployer sur un serveur distant tel que heroku . L'astuce consiste à mettre à jour le fichier etc/hosts
de cette façon:
127.0.0.1 mydomain.com
Puis, dans les paramètres de l'application Facebook, tapez [ http: //] mydomain.com, sans les "[" et "]"
Cela a fonctionné pour moi de cette façon
Pour tous ceux qui se passionnent pour cela en 2017. L'interface a encore changé. Je voulais commenter la réponse, mais je n’ai pas assez de réputation. L’URL localhost de votre application doit maintenant être copié à trois endroits. Actuellement (26 octobre 2017), la séquence est la suivante:
1.) Cliquez sur "Paramètres" dans le menu de gauche.
2.) Au centre, sous la première boîte d’options, cliquez sur "+ Ajouter une plate-forme" et choisissez "Site Web" (ou tout autre choix approprié pour votre application.)
3.) Dans la boîte de dialogue qui s'affiche pour le site Web que vous venez d'ajouter, copiez l'URL de votre site localhost (par exemple, http: // localhost: 3000/ ).
4.) Dans la case ci-dessus que "Domaine d'application" copie la même URL
5.) En bas à droite, cliquez sur "Enregistrer les modifications".
6.) Dans le menu de gauche sous "Produits", cliquez sur "Connexion Facebook" (ou ajoutez-le via "+ Ajouter des produits" s'il n'est pas disponible).
7.) Vous êtes maintenant dans les paramètres de connexion Facebook. Copiez la même adresse dans le champ "URI de redirection OAuth valides"
Cela devrait marcher.
Ceci est faux. Vous devez créer une application de test à l'aide de l'onglet Test dans les paramètres de l'application. Et vous pourrez ensuite entrer votre URL de phase de développement (par exemple, localhost) dans votre application.
Solution utilisant Firebase
Pour que cela fonctionne avec localhost
, le port 3000
, j'ai procédé comme suit:
localhost
aux domaines d'applicationhttp://localhost:3000/
à l'URL du site en sélectionnant "+ Ajouter une plate-forme"Jusqu'ici, j'avais suivi toutes les réponses précédentes soumises ici, mais rien ne fonctionnait.
Alors...
Dans le menu de gauche, sélectionnez "Ajouter un produit"
Ajouter "Facebook Login"
Un carrousel de flux de travail vous sera présenté. Avec le domaine par défaut http://localhost:3000/
, cliquez sur "continuer" jusqu'à la fin.
Sélectionnez "Connexion Facebook> Paramètres" dans le menu du produit.
Entrez votre URI de redirection Firebase OAuth (détecté lors de l'activation de la connexion Facebook dans votre console Firebase https://console.firebase.google.com , exemple ci-dessous).
Terminé.
Ajoutez simplement localhost en tant qu’URL de toile ou url de site mobile. Cela vous permettra d’avoir localhost et herokuapp.com dans les paramètres de votre domaine d’application. Ensuite, une fois votre application en production, supprimez-la simplement.
Essayez d’utiliser l’url avec le port, par exemple
http://localhost:8000/
J'avais le même problème et j'ai trouvé cette solution maintenant.
Cela fonctionne pour moi dans heroku, le truc localhost n'a pas fonctionné (pour moi). J'espère que ça aide
1.) Au centre, sous la première boîte d’options, cliquez sur "+ Ajouter une plate-forme" et choisissez "Site Web" (ou tout autre choix approprié pour votre application.)
2.) Dans la zone qui s'affiche pour le site Web que vous venez d'ajouter: URL du site: http://MYAPP.herokuapp.com/ (remplacez MYAPP par le nom de votre application).
3.) Dans la zone ci-dessus, dans (Paramètres => Basique): Domaine de l'application: MYAPP.herokuapp.com (remplacez MYAPP par le nom de votre application).
4.) En bas à droite, cliquez sur "Enregistrer les modifications".
Juste une note pour certains autres qui peuvent être aux prises avec cela, comme je l'étais. Je n'ai pas réussi à faire en sorte que cela fonctionne avec des applications "test". Utiliser mes paramètres d’application réels (et ajouter simplement
"http://localhost:3000/"
à mon URL de toile) a fonctionné comme tout le monde l’a suggéré. Il semble que les applications de test ne sont pas égales aux applications réelles.
J'ai rencontré un problème avec mon application Rails que je lance habituellement avec http: // localhost: 3000 parce que Facebook requiert maintenant la redirection Valid OAuth pour utiliser https.
Pour utiliser https localement, j'ai utilisé [ngrok] [1] qui vous permet d'utiliser https en fournissant un tunnel. Pour faire ça:
Pour moi cela a fonctionné comme ceci:
Configuration du tableau de bord de l'application facebook:
* Sur l'onglet 'basique':
1) Laisser le domaine d'application vide.
2) Effacer toute plate-forme. Signification: pas de site Web, pas de plate-forme de toile. (donc pas de champ URL du site à remplir)
* Sur l'onglet 'avancé':
3) J'ai entré l'URI de redirection OAuth valide:
http://localhost/myappfolder/redirect.php
4) En ce qui concerne mon code,
$helper = new FacebookRedirectLoginHelper('http://localhost/myappfolder/redirect.php');
dans le fichier redirect.php:
$helper = new FacebookRedirectLoginHelper('http://localhost/myappfolder/redirect.php');
et j'ai une session! enfin! pas besoin de me pendre à la fin: P
pour effectuer des tests locaux, vous devez simplement éteindre l'application ou mettre l'application Facebook en mode de développement. Ensuite, Facebook vous permettra seul d'accéder à l'application