Développement Facebook dans localhost

178

Je voulais juste savoir s'il y avait un moyen de développer des applications Facebook dans localhost.

Abhishek
la source

Réponses:

247

Edit: 15/02/2012 Voici comment utiliser l'authentification FB pour un site Web localhost.

Je trouve qu'il est plus évolutif et pratique de créer une deuxième application Facebook. Si je construis MyApp, j'en créerai un deuxième appelé MyApp-dev.

  • Créez une nouvelle application sur https://developers.facebook.com/apps
  • (Nouveau 15/02/2012) Cochez la Websitecase sous `` Sélectionnez comment votre application s'intègre à Facebook '' (dans la version récente de Facebook, vous pouvez le trouver sous Paramètres> De base> Ajouter une plate-forme - Ensuite, sélectionnez le site Web)
  • Définissez le champ URL du site ( PAS le champ Domaines d'application ) sur http: //www.localhost: 3000 (cette adresse est pour Ruby on Rails, modifiez si nécessaire)

entrez la description de l'image ici

  • Dans l'initialiseur de votre application, mettez du code pour détecter l'environnement
    • Exemple de code Rails 3
      if Rails.env == 'développement' || Rails.env == 'test'
        Rails.application.config.middleware.use OmniAuth :: Builder faire
          fournisseur: facebook, 'DEV_APP_ID', 'DEV_APP_SECRET'
        fin
      autre
        # Production
        Rails.application.config.middleware.use OmniAuth :: Builder faire
          fournisseur: facebook, 'PRODUCTION_APP_ID', 'PRODUCTION_APP_SECRET'
        fin
      fin
      

Je préfère cette méthode car une fois installée, les collègues et autres machines n'ont pas de configuration supplémentaire.

Eric Hu
la source
3
+ 1ed C'est étrange! Les gens disent que vous ne pouvez pas ajouter l'hôte local comme URL de votre application. Mais cela fonctionne simplement pour moi. Merci!
Keyne Viana
15
Est-ce toujours le cas pour vous? Je ne semble pas pouvoir ajouter localhost, ou 127.0.0.1:5000 ou quoi que ce soit de similaire à mon domaine d'application pour Facebook.
Pete
J'ai juste essayé d'en créer un nouveau et j'ai rencontré un problème de «domaine invalide». Merci pour la capture
Eric Hu
1
@zoltarSpeaks Voir ma réponse mise à jour. Vous devez utiliser un champ différent, pas "domaine d'application"
Eric Hu
1
cela remplacera-t-il les initialiseurs / devise.rb config.omniauth: facebook, 'APP_KEY', 'APP_SECRET',: scope => "email, offline_access .."?
disparu le
26

Bien sûr, vous pouvez, ajoutez simplement l'url localhost (sans "http") dans votre domaine d'application, puis ajoutez votre site_url http://localhost(avec http)

Mise à jour

Facebook change un peu les choses maintenant, il suffit d'aller dans les paramètres de l'application et dans l'URL du site, il suffit d'ajouter http: //localhostet de laisser le domaine d'application vide

staline
la source
Cela fonctionne totalement. Il n'y a pas besoin de quoi que ce soit de notre côté de la clôture.
godspeedelbow
11
Cela ne fonctionne plus, vous obtenez l'erreur ne peut pas ajouter de domaines de premier niveau
Josh Bedo
20

Voici ma configuration et cela fonctionne bien pour l'API PHP:

domaine d'application

   http://localhost

URL du site

   http://localhost:8082/
échangé
la source
1
a dû remplir ces deux entrées de texte pour que localhost fonctionne
paulruescher
19

REMARQUE: Depuis 2012, Facebook autorise l'enregistrement de "localhost" en tant qu'URL de retour. Vous pouvez toujours avoir besoin d'une solution de contournement similaire pour d'autres fournisseurs (par exemple, Microsoft One).

Si vous avez besoin d'un vrai nom de domaine enregistré avec Facebook (comme my.really.own.domain.com), vous pouvez rediriger localement les demandes vers ce domaine vers votre machine. L'approche prête à l'emploi la plus simple sur n'importe quel système d'exploitation consiste à modifier le fichier "hosts" pour mapper le domaine à 127.0.0.1 (voir http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAA et https: / /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file ).

J'utilise généralement Fiddler pour le faire pour moi (sur Windows avec IIS local) - voir des exemples sur http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp .

if (oSession.HostnameIs("my.really.own.domain.com")) {
   oSession.host="localhost:80";
}

L'approche des fichiers hôtes des approches ne fonctionne pas avec Visual Studio Development Server car elle nécessite que les URL entrantes soient localhost / 127.0.0.1. Si vous devez travailler avec (ou éventuellement avec IIS express) pour remplacer l'hôte - Utilisation de Fiddler avec IIS7 Express

Alexei Levenkov
la source
9

Facebook n'autorisait plus une URL de rappel `` localhost '' pour les applications Facebook FBML

Sudantha
la source
assurez-vous que dans vos paramètres de sécurité Facebook, vous avez désactivé la «navigation sécurisée». Cela rendra votre hôte local indisponible s'il est activé.
supajb
9

Avec le nouveau centre de développement, c'est désormais plus simple:

1) Laissez les domaines d'application vides.
2) Cliquez sur Ajouter une plate-forme.
3) L'URL du site doit correspondre au chemin complet de votre hôte local.
4) Enregistrer les modifications

JSV
la source
1
Vérifié, c'est la meilleure façon de procéder pour une installation localhost. Insérez simplement l'URL de base sur votre environnement de développement comme ci-dessus - sans http: // et Facebook l'ajoutera pour vous. Des trucs simples! Merci Jay
keade
1
Cette solution a résolu mon problème lors de l'exécution sur localhost
Rola
8

Je viens de découvrir une solution de contournement: vous pouvez rendre votre machine locale accessible en utilisant http://localtunnel.com . Vous devrez (temporairement) modifier certaines URL utilisées dans le code / html de votre application afin que les liens pointent vers le domaine temporaire, mais au moins Facebook peut atteindre votre machine.

Martin T.
la source
7

Dans les paramètres de base de votre application ( https://developers.facebook.com/apps ) sous Paramètres-> De base-> Sélectionnez comment votre application s'intègre à Facebook ...

Utilisez "URL du site:" et "URL du site mobile:" pour stocker respectivement vos URL de production et de développement. Les deux sites seront autorisés à s'authentifier. J'utilise simplement Facebook pour m'authentifier, donc je n'ai besoin d'aucune des fonctionnalités de redirection de site mobile. Je change généralement le "URL du site mobile:" en mon site "localhost: 12345" pendant que je teste l'authentification, puis je le remets à la normale lorsque j'ai terminé.

Carter Medlin
la source
5

Il y a ! Ma solution fonctionne lorsque vous créez une application, mais que vous souhaitez utiliser l'authentification Facebook sur votre site Web. Cette solution ci-dessous n'est PAS nécessaire lorsque vous souhaitez créer une application intégrée à la page FB.

Le fait est que vous ne pouvez pas mettre "localhost" comme domaine dans la page de configuration Facebook de votre application. Raisons de sécurité ?

Vous devez aller dans votre fichier hôte, dans OSX / Linux etc / hosts et ajouter la ligne suivante: 127.0.0.1 dev.yourdomain.com

Le domaine que vous mettez ce que vous voulez. Une erreur est d'ajouter cette ligne: localhost dev.yourdomain.com (au moins sur osx snow leopard ne fonctionne pas).

Ensuite, vous devez vider votre cache DNS. Sous OSX: tapez dscacheutil -flushcache dans le terminal. Enfin, retournez sur le site web des développeurs facebook en ligne, et dans la page de configuration de votre application, vous pouvez ajouter le domaine "dev.yourdomain.com".

Si vous utilisez un programme tel que Mamp, Easyphp ou autre, assurez-vous que le port pour Apache est 80.

Cette solution devrait fonctionner pour Windows car elle possède également un fichier hosts. Néanmoins, autant que je me souvienne, Windows 7 n'utilise plus ce fichier, mais cette astuce devrait fonctionner si vous trouvez un moyen de forcer Windows à utiliser un fichier hosts.

MartinL
la source
fonctionne pour win8.1 c: \ windows \ system32 \ drivers \ etc \ hosts. Vous devrez peut-être vider le 'cache du résolveur d'hôte' dans chrome URL = chrome: // net-internals / # dns
rnrneverdies
5

Vous devez choisir le produit Facebook `` connexion facebook '' et activer la connexion client OAuth, la `` connexion Web OAuth '' et la `` connexion OAuth du navigateur intégré '', même si vous donnez l'URL de l'hôte local, cela fonctionnera entrez la description de l'image ici

Abhinav Bhardwaj
la source
Cela a contribué à faire avancer le problème. Message du FB du 23/02/2018: En mars, nous effectuons une mise à jour de sécurité des paramètres de votre application qui invalidera les appels provenant d'URI non répertoriés dans le champ URI de redirection OAuth valides ci-dessous. nous l'avons vu sur notre plate-forme, et nous voulons protéger votre application ou votre site Web en exigeant un nouveau mode strict pour les URI de redirection.
Tim Tyler
1
Fb nécessite maintenant https pour le rappel. Localhost ne prend pas en charge https.
huuthang
1
@huuthang donc tout ce Q / R est obsolète.
RVB
3

Je pense que vous devriez pouvoir développer des applications en utilisant le serveur Web de développement de Visual Studio: Démarrez une nouvelle application FaceBook sur: http://www.facebook.com/developers/ . Ensuite, définissez les paramètres de l'URL du site et de l'URL du canevas sur l'instance en cours d'exécution de votre site Web, par exemple: http: // localhost: 1062 /

Voici quelques liens qui devraient vous aider à démarrer avec FaceBook:

  1. http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development/ ,
  2. http://nagbaba.blogspot.com/2010/05/experience-facebook-javascript-sdk.html ,
  3. http://apps.facebook.com/thinkdiffdemo/

J'espère que cela t'aides.

Vasile Laur
la source
3

Essaye ça ---

https://www.facebook.com/help/community/question/?id=589302607826562

1 - Cliquez sur Applications, puis sélectionnez votre application.

2 - Cliquez sur le bouton Paramètres sur le côté gauche de l'écran.

3 - Dans les paramètres de base, cliquez sur le bouton Ajouter une plate-forme sous la configuration des paramètres.

4 - Sélectionnez Site Web dans la boîte de dialogue de la plateforme.

5 - Entrez votre URL (localhost fonctionne ici).

6 - Dans la saisie de texte Domaines d'application, ajoutez votre domaine qui correspond à celui de l'URL.

7 - Enregistrez vos paramètres.

Snm Maurya
la source
2

Supposons que vous ayez enregistré votre application en tant que:

app.domain.com

Il vous suffit de modifier le fichier / etc / hosts en ajoutant

127.0.0.1 dev01.app.domain.com

Ensuite, modifiez votre configuration Apache

ServerName dev01.app.domain.com

et redémarrez apache.

Vous devrez mettre votre URL dans une variable afin de l'utiliser comme paramètre XML sur certains appels:

<fb:login-button registration-url="http://<?=$URL?>/register" />
Juan Eduardo Castaño Nestares
la source
2

Je n'ai pas assez de crédit pour commenter la réponse la plus votée, mais au moins dans mon environnement de rails (exécutant 4), rails s est à http://localhost:3000, pas http://www.localhost:3000. Quand je l'ai changé en http://localhost:3000, cela a très bien fonctionné. Pas besoin de modifier un fichier d'hôtes.

Andrew Shenstone
la source
2

app domain : localhost

site URL : http://localhost:4440/

a travaillé pour moi avec la nouvelle interface utilisateur.

sftsz
la source
0

Ma solution fonctionne bien dans localhost ..... Pour l'utilisation des URL du site http://localhost/ et pour l'utilisation des domaines d'application localhost/folder_name Reste tout est identique ....... cela fonctionne bien (bien que son drapeau rouge s'affiche dans le domaine d'application ... L'application fonctionne correctement)

fabuleux
la source
0

Il est facile d'accéder au tableau de bord de l'application sous l'onglet de connexion facebook, cliquez sur paramètres, puis sélectionnez Appliquer HTTPs Non, enregistrez les paramètresentrez la description de l'image ici

Jérôme Blacq
la source
0

L'application fonctionnera très bien dans localhost: 3000, il vous suffit de spécifier l'adresse https sur laquelle l'application sera active lorsqu'elle sera en mode production.
L'option 2 est de fournir l'url ou votre site Web heroku qui vous permet d'avoir un exemple d'application en mode production.

entrez la description de l'image ici

vidur punj
la source
0

Dernière mise à jour: vous n'avez pas à donner d'URL si vous la testez en développement. Vous pouvez laisser les champs vides. Assurez-vous que votre application est en mode développement. Sinon, désactivez le statut de live.

Pas besoin de fournir l'URL du site, les domaines d'application ou l'URI oauth de redirection valide.

entrez la description de l'image ici

Vigneshwaran Sivalingam
la source
1
Notez que si vous transformez votre application de «live» en «développement», vous pourrez vous connecter depuis localhost sur la machine de développement, mais TOUS VOS UTILISATEURS LIVE ne pourront plus se connecter.
webdevbyjoss
Je l'ai fait et cela m'a toujours donné l'erreur et le bouton fb ne s'afficherait pas
joslinm
Après avoir créé l'application, cliquez sur le bouton "Créer une application de test" pour obtenir une application uniquement à des fins de développement / test. J'avais encore besoin d'ajouter "localhost" aux domaines d'application.
Aucun
@ J.Money Je pense que cela pourrait être changé maintenant. Merci de me le faire savoir.
Vigneshwaran Sivalingam