Je prévois de me connecter au chat Facebook depuis mon hôte local. J'aurai besoin d'obtenir la clé de session de Facebook. Lorsque je donne l'URL du site localhost:8080
ou ip-address:8080
cela ne fonctionne pas.
J'ai lu sur la configuration de deux applications avec 2 clés API différentes, l'une fonctionnant sur dev m / c et l'autre sur localhost, mais je ne l'ai pas tout à fait compris.
Quelqu'un peut-il expliquer comment exécuter une application Facebook sur localhost?
facebook
localhost
facebook-chat
enthousiaste
la source
la source
Réponses:
J'ai écrit un tutoriel à ce sujet il y a quelque temps.
Le point le plus important est l '"URL du site":
Où la structure des dossiers est quelque chose comme:
EDIT:
Kavya : comment le serveur FB reconnaît-il mon hôte local même sans adresse IP ou port ??
Je ne pense pas que cela ait quoi que ce soit à voir avec Facebook, je suppose que puisque le
src
paramètre iframe est chargé du côté client, il traitera votre URL locale comme si vous la mettiez directement sur votre navigateur.Par exemple, ayez un fichier sur votre serveur en ligne avec du contenu (par exemple
online.php
):Et sur votre répertoire racine localhost, ayez 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 le mentionner) ne fonctionneront pas avec les URL de l'hôte local! parce que Facebook va envoyer un ping (envoyer des requêtes http) à ces URL mais évidemment le serveur Facebook ne traduira pas ces URL vers les vôtres!
la source
http://localhost:8080/auth/index.html
et la page Web qui donne l'erreur esthttp://localhost:8080/auth/index.html
et la ligne de channelurl est:channelUrl : '//localhost:8080/auth/channel.html',
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.
la source
Vous pouvez également modifier le fichier «hosts» et créer une variante locale de votre domaine.
Exemple
Si votre véritable adresse d'application Facebook est "example.com", vous pouvez créer le domaine "localhost.example.com" (accessible uniquement depuis votre PC) dans votre fichier "hosts" pointant vers "localhost" et exécuter votre site Web local sous ce domaine. Vous pouvez tromper Facebook de cette façon.
la source
C:/Windows/System32/drivers/etc/hosts
ou sur Ubuntu à/etc/hosts
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 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 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é.
la source
2013 août. Facebook ne permet pas de définir le domaine avec le port pour une application, par exemple "localhost: 3000".
Vous pouvez donc utiliser https://pagekite.net pour tunneliser votre
localhost:port
domaine vers le bon domaine.Les développeurs Rails peuvent utiliser gratuitement http://progrium.com/localtunnel/ .
la source
Alors j'ai fait fonctionner ça 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 laFB.api
méthode. J'ai continué à obtenir un nom "indéfini" et une image sans source, donc je n'avais certainement pas accès au graphique.Plus tard, j'ai réalisé que mon problème était vraiment que je ne faisais que passer un premier argument de
/me
àFB.api
, et je n'avais pas de jeton. Vous devrez donc utiliser laFB.getLoginStatus
fonction pour obtenir un jeton, qui devrait être ajouté à l'/me
argument.la source
spécifiez simplement votre URL de canevas comme http: // localhost / app_path .
la source
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 senior à mon travail. Je travaille dans Ruby on Rails et j'utilise le code JavaScript de Facebook pour obtenir des jetons d'accès.
Problème: pour faire l'authentification, Facebook prend l'URL de votre barre d'adresse et la compare avec ce qu'ils ont dans le fichier. Ils ne vous permettent pas d'utiliser
localhost:3000
pour une raison quelconque. Cependant, vous pouvez utiliser un nom de domaine complètement inventé, commeyoursite.dev
en exécutant un serveur local et en pointantyoursite.dev
vers127.0.0.1:3000
ou à l'endroit où votre hôte local pointait.Étape 1 : Installez ou mettez à jour Nginx
$ brew install nginx
(installer) ou$ brew upgrade nginx
(mettre à 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
http {}
blocRemplacez
proxy_pass
par l'endroit où vous voulez pointeryoursite.dev
. Dans mon cas, il remplaçait localhost: 3000 ou l'équivalent127.0.0.1:3000
Étape 4 : Modifiez votre fichier d'hôtes
/etc/hosts
sur Mac pour inclureCe fichier dirige les domaines vers localhost. Nginx écoute sur l'hôte local et redirige s'il correspond à une règle.
Étape 5 : Chaque fois que vous utilisez votre environnement de développement, vous utilisez le
yoursite.dev
dans la barre d'adresse au lieu delocalhost:3000
Facebook vous connecte correctement.la source
Forward est un excellent outil pour aider au développement d'applications Facebook localement, il prend en charge SSL, donc le cert n'est pas un problème.
https://forwardhq.com/in-use/facebook
AVERTISSEMENT: je suis l'un des développeurs
la source
Vous devez configurer votre application pour qu'elle s'exécute sur https pour localhost
Vous pouvez suivre les étapes ci-dessous pour configurer HTTPS sur ubuntu
https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-12-04
Vous devez suivre les étapes suivantes:
installez apache (si vous ne l'avez pas)
Première étape: activer le module SSL
Deuxième étape: créer un nouveau répertoire
Troisième étape: créer un certificat SSL auto-signé
Avec cette commande, nous créerons à la fois le certificat SSL auto-signé et la clé de 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.
Étape 4: configuration du certificat
Trouvez les lignes suivantes et modifiez-les avec vos paramètres
Cinquième étape: activer le nouvel hôte virtuel
la source
Un truc:
Utilisez MAMPPRO et créez: nom du serveur: l'adresse EXACTE de votre site Web (ex: helloworld.com) à votre site sur votre disque
Sur Facebook: vous pouvez ainsi conserver l'URL de votre site d'origine (par exemple: helloworld.com)
Vous comprenez maintenant que lorsque vous tapez votre site Web sur la barre d'adresse, vous êtes en local ! ..et lorsque vous souhaitez être en ligne, désactivez simplement le serveur sur MAMP PRO ..
:)
la source
Aucune des réponses ci-dessus n'a fonctionné pour moi. J'utilise FB API 2.5. Le mien était une combinaison de problèmes qui mènent au succès une fois résolus
Ce n'est probablement pas idéal car le changement d'IP dynamique et on pourrait probablement utiliser DynDNS ou quelque chose de similaire pour rendre l'IP plus "statique" mais cela a fonctionné pour moi
la source
Dans mon cas, le problème s'est révélé être le blocage par Chrome de la requête CORS de localhost: 4200 vers le site Web de l'API Facebook. Exécuter Chrome avec ce paramètre: "YOUR_PATH_TO_CHROME \ Google \ Chrome \ Application \ chrome.exe" --disable-web-security --user-data-dir = "c: / chrome a fonctionné comme un charme lors du développement. Même sans hôte local ajouté aux paramètres de l'application facebook.
la source