web-dev-qa-db-fra.com

App Facebook: l'hôte local ne fonctionne plus en tant que domaine d'application

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?

88
Ravenstine

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:

  • Toutes les modifications ont été apportées sur la page Paramètres sous l'onglet De base

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

234
Taylor714
  1. Accédez à la page des paramètres de votre application dans http://developers.facebook.com
  2. Cliquez sur la flèche déroulante en haut à gauche (à côté du nom de votre application) et cliquez sur "Créer une application de test" et nommez-la.
  3. Dans les Paramètres> Basiques de cette nouvelle application test, définissez les domaines de l'application sur "localhost".
  4. Définissez également l’URL du site Web comme suit: " http: // localhost: 8888 " (ou le port que vous utilisez).
  5. IMPORTANT: cette application a un identifiant et un secret d’application différents de ceux de votre application en ligne. Donc, dernière étape: assurez-vous de mettre à jour le code qui se trouve dans votre hôte local avec l'ID de l'application et l'application Secret de l'application Test. Au contraire, le code contenu dans le serveur live devrait utiliser l'ID et le secret de l'application principale.
25
georgios

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

13
Patrick

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. 

9
Imre_G

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.

5
Esref Atak

Solution utilisant Firebase

Pour que cela fonctionne avec localhost, le port 3000, j'ai procédé comme suit:

  1. Créer une application

 Create Test App

  1. Maintenant, sélectionnez "+ Créer une application de test" dans le menu déroulant en flèche (en haut à gauche).

 enter image description here

  1. Ajouter localhost aux domaines d'application

 enter image description here

  1. Ajouter http://localhost:3000/ à l'URL du site en sélectionnant "+ Ajouter une plate-forme"

 enter image description here

Jusqu'ici, j'avais suivi toutes les réponses précédentes soumises ici, mais rien ne fonctionnait. 

Alors...

  1. Dans le menu de gauche, sélectionnez "Ajouter un produit"

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

  1. Sélectionnez "Connexion Facebook> Paramètres" dans le menu du produit.

  2. 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).

 enter image description here

  1. Coller l'URI et enregistrer. 

 enter image description here

Terminé.

5
Matt D. Webb

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.

5
rareclass

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.

2
Camilo

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

1
gamanox

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. 

1
user1775485

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:

  1. Je suis allé sur leur site web et j'ai téléchargé leur programme
  2. J'ai extrait le fichier pour le programme
  3. Dans ma console, je suis allé dans le répertoire où ngrok a été extrait et je suis entré 'grok http 3000' sur ma machine Windows, d’autres peuvent utiliser './grok http 3000'
  4. Après avoir entré cela, ngrok a fourni une adresse https que j'ai inscrite dans le champ URI de redirection OAuth valide de Facebook.
  5. Ensuite, j'ai démarré mon serveur et j'ai pu y accéder en utilisant cette adresse https au lieu de localhost: 3000
0
yellowreign

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

0
Ohad Glaich

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 

0
Peter Ugah