Exécution de l’application Facebook sur localhost

Je prévois de me connecter à Facebook Chat depuis mon localhost. Je devrai obtenir la clé de session de Facebook. Lorsque je donne l’URL du site en tant que localhost:8080 ou ip-address:8080 cela ne fonctionne pas.

J’ai lu sur la configuration de deux applications avec deux clés API différentes, l’une s’exécute sur dev m / c et d’autres sur localhost, mais je ne l’ai pas tout à fait compris.

Quelqu’un peut-il expliquer comment exécuter une application Facebook sur localhost?

J’ai écrit un tutoriel à ce sujet il y a quelque temps.

Le point le plus important est l’URL du site:

URL du site: http: // localhost / app_name /

Où la structure du dossier est quelque chose comme:

 app_name ¦ index.php ¦ +---canvas ¦ ¦ index.php ¦ ¦ ¦ +---css ¦ main.css ¦ reset.css ¦ +---src facebook.php fb_ca_chain_bundle.crt 

MODIFIER:
Kavya : comment le serveur FB reconnaît-il mon localhost même sans IP ou port?

Je ne pense pas que cela ait quelque chose à voir avec Facebook, je suppose que puisque le paramètre iframe src est chargé du côté client, cela traitera votre URL locale comme si vous la mettez directement sur votre navigateur.

Par exemple, avoir un fichier sur votre serveur en ligne avec du contenu (par exemple, online.php ):

  

Et sur votre répertoire racine localhost, test.php le fichier test.php :

  

Maintenant, visitez http://your_domain.com/online.php vous verrez le contenu de votre fichier localhost!

C’est pourquoi les abonnements en temps réel et les rappels de désautorisation (pour ne citer que) ne fonctionnent pas avec les URL de localhost! car Facebook enverra une requête ping (envoi de requêtes http) à ces URL, mais de toute évidence, le serveur Facebook ne traduira pas ces URL vers les vôtres!

si vous utilisez localhost:

dans Facebook -> Paramètres -> De base, dans le champ “Domaines d’application”, écrivez “localhost”, puis cliquez sur “+ Ajouter une plate-forme”, choisissez “Site Web”,

il créera deux champs “URL du site mobile” et “URL du site”, dans “URL du site”, réécrivez “localhost”.

travaille pour moi.

Vous pouvez également modifier le fichier “hosts” et créer des variantes locales de votre domaine.

Exemple

Si votre véritable adresse Facebook est “example.com”, vous pouvez créer le domaine “localhost.example.com” (accessible uniquement à partir de votre PC) dans votre fichier “hosts” pointant sur “localhost” et exécuter votre site Web local sous ce domaine. Vous pouvez tromper Facebook de cette façon.

Dans les parameters 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 conserver vos URL de production et de développement. Les deux sites seront autorisés à s’authentifier. J’utilise simplement Facebook pour l’authentification, donc je n’ai besoin d’aucune des fonctionnalités de redirection de sites mobiles. Je modifie généralement l’URL du site mobile: sur mon site “localhost: 12345” pendant que je teste l’authentification, puis rétablis la normale lorsque j’ai terminé.

2013 août. Facebook ne permet pas de définir le domaine avec un port pour une application, comme par exemple “localhost: 3000”.

Vous pouvez donc utiliser https://pagekite.net pour tunneler votre localhost:port vers le domaine approprié.

Les développeurs Rails peuvent utiliser gratuitement http://progrium.com/localtunnel/ .

  • Facebook n’autorise qu’un seul domaine pour App à la fois. Si vous essayez d’en append un autre, comme localhost, il présentera une erreur différente sur le domaine. Veillez à utiliser un seul domaine pour le rappel et pour le paramétrage du domaine d’application à ce moment-là.

Donc j’ai eu ça au boulot aujourd’hui. Mon URL est http://localhost:8888 . Le domaine que j’ai donné à facebook est localhost. Je pensais que cela ne fonctionnait pas parce que j’essayais d’extraire des données en utilisant la méthode FB.api . J’ai continué à obtenir un nom “indéfini” et une image sans source, donc je n’ai pas eu access au graphique.

Plus tard, j’ai réalisé que mon problème était vraiment que je ne transmettais qu’un premier argument de /me à FB.api , et que je n’avais pas de jeton. Vous devrez donc utiliser la fonction FB.getLoginStatus pour obtenir un jeton à append à l’argument /me .

il suffit de spécifier votre URL de canvas en tant que http: // localhost / app_path .

Ok je ne suis pas sûr de ce qui se passe avec ces réponses mais je vous ferai savoir ce qui a fonctionné pour moi comme conseillé par un développeur principal dans mon travail. Je travaille sur Ruby on Rails et utilise le code JavaScript de Facebook pour obtenir des jetons d’access.

Problème: pour faire l’authentification, Facebook prend l’URL de votre barre d’adresse et la compare à ce qu’elle a dans les fichiers. Ils ne vous permettent pas d’utiliser localhost:3000 pour quelque raison que ce soit. Cependant, vous pouvez utiliser un nom de domaine complètement créé, comme yoursite.dev en exécutant un serveur local et en dirigeant votre yoursite.dev vers 127.0.0.1:3000 ou vers votre yoursite.dev d’ yoursite.dev local.

Étape 1 : Installer ou mettre à jour Nginx

$ brew install nginx (install) ou $ brew upgrade nginx (mise à jour)

Étape 2 : Ouvrez votre fichier de configuration nginx

/usr/local/etc/nginx/nginx.conf (généralement ici)

/opt/boxen/config/nginx/nginx.conf (si vous utilisez Boxen)

Étape 3 Ajoutez ce bit de code dans votre bloc http {}

Remplacez proxy_pass par l’endroit où vous souhaitez que votre site pointe vers yoursite.dev . Dans mon cas, il remplaçait localhost: 3000 ou l’équivalent 127.0.0.1:3000

 server { listen yoursite.dev:80; server_name yoursite.dev; location / { proxy_pass http://127.0.0.1:3000; } } 

Étape 4 : Éditez votre fichier hosts, dans /etc/hosts sur Mac pour inclure

 127.0.0.1 yoursite.dev 

Ce fichier dirige les domaines vers localhost. Nginx écoute sur localhost et redirige s’il correspond à une règle.

Etape 5 : Chaque fois que vous utilisez votre environnement de développement, vous utilisez le yoursite.dev dans la barre d’adresse au lieu de localhost:3000 , Facebook se connecte donc correctement.

Forward est un excellent outil pour aider au développement d’applications Facebook localement, il prend en charge le protocole SSL.

https://forwardhq.com/in-use/facebook

AVERTISSEMENT: Je suis l’un des développeurs

Vous devez configurer votre application pour qu’elle fonctionne sur https pour localhost

Vous pouvez suivre les étapes données pour configurer HTTPS sur Ubuntu

https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificatee-on-apache-for-ubuntu-12-04

Vous devez suivre les étapes suivantes:

installez apache (si vous n’en avez pas)

 sudo apt-get install apache2 

Première étape: activer le module SSL

 sudo a2enmod ssl sudo service apache2 restart 

Deuxième étape – Créer un nouveau répertoire

 sudo mkdir /etc/apache2/ssl 

Troisième étape: création d’un certificate SSL auto-signé

 sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache/ssl/apache.key -out /etc/apache2/ssl/apache.crt 

Avec cette commande, nous créerons à la fois le certificate SSL auto-signé et la clé du serveur qui le protège, et les placerons tous les deux dans le nouveau répertoire. La ligne la plus importante est “Nom commun”. Entrez votre nom de domaine officiel ici ou, si vous n’en avez pas encore, l’adresse IP de votre site.

Nom commun (par exemple, nom de domaine complet du serveur ou VOTRE nom) []: example.com ou localhost

Quasortingème étape – Configuration du certificate

 sudo vim /etc/apache2/sites-available/default-ssl 

Trouvez les lignes suivantes et modifiez-les avec vos parameters

Nom_serveur localhost ou example.com

SSLEngine sur SSLCertificateFile /etc/apache2/ssl/apache.crt

SSLCertificateKeyFile /etc/apache2/ssl/apache.key

Cinquième étape: activer le nouvel hôte virtuel

 sudo a2ensite default-ssl sudo service apache2 reload 

Un truc:

Utilisez MAMPPRO et créez: nom du serveur: l’adresse EXACT de votre site Web (ex: helloworld.com) sur votre site sur votre disque

Sur Facebook: vous pouvez ainsi conserver l’URL du site d’origine (ex: helloworld.com)

Maintenant, vous comprenez que lorsque vous tapez votre site Web dans la barre d’adresse, vous êtes dans le local ! ..et quand vous voulez être en ligne, juste inactif le serveur sur MAMP PRO ..

🙂

Aucune des réponses ci-dessus n’a fonctionné pour moi. Je cours sur FB API 2.5. Le mien était une combinaison de problèmes qui mènent au succès une fois résolus

  1. Créez une application de test pour vous assurer qu’elle est maintenue et gérée en tant que telle et peut être désactivée en direct
  2. Lire le message d’erreur correctement 🙂 – Je devais activer “Web OAuth Login” AVEC “Client OAuth Login”
  3. Utilisez https://www.whatismyip.com/ pour connaître mon adresse IP actuelle
  4. Créer un enregistrement A sur mon domaine, par exemple http://localhost.mydomain.com qui pointe vers mon adresse IP actuelle

Ce n’est probablement pas l’idéal en tant que changement d’IP dynamic et on pourrait probablement utiliser DynDNS ou quelque chose de similaire pour rendre l’IP plus “statique” mais cela a fonctionné pour moi