Как я могу заставить графическое API Facebook работать на моем localhost? - PullRequest
12 голосов
/ 02 мая 2011

заголовок может указывать на это, но я ищу способ, чтобы API графа Facebook работал на моем локальном хосте. Это неприятно, если мне нужно синхронизировать проект с сервером каждый раз, когда я хочу протестировать, потому что график работает только в режиме онлайн.

У кого-нибудь есть предложения по этой проблеме?

Ответы [ 6 ]

16 голосов
/ 02 мая 2011

Если вам не нужен автономный доступ (который недоступен, см. Ответ Джимми Савчука), но вам нужен только ваш веб-сайт, чтобы иметь возможность доступа к API Graph с вашего локального хоста вместо реального имени домена, это должно быть возможно .

Что вам нужно сделать, это отредактировать настройки приложения вашего сайта на Facebook. Задайте для URL-адреса своих приложений «localhost» или локальный IP-адрес вашего компьютера, и я думаю, что он должен работать.

4 голосов
/ 22 октября 2011

ТЛ; др

  1. Настройка приложения facebook
  2. Отредактируйте файл / etc / hosts с помощью local.yourdomain
  3. используйте ваш браузер на local.yourdomain

Следуйте инструкциям, приведенным в этом сообщении для получения инструкций: Как: Локальная разработка приложений для Facebook

1 голос
/ 02 мая 2011

Если вы не планируете создание фиктивной конечной точки API Graph Facebook, тогда да, вам нужно быть в сети, чтобы запрашивать API графика.

Что касается запуска с localhost, вы обнаружите, что вам нужна конечная точка для перенаправления пользователей при установке, или Facebook выдаст ошибку. Вы должны иметь возможность использовать IP-адрес, но доменное имя избавит вас от хлопот.

При разработке я использую тестовое приложение Facebook, которое указывает на мой тестовый сервер, а когда я запускаю свой код в прямом эфире, оно использует реальное приложение, основанное на реальном домене. Кроме того, мой тестовый сервер - это виртуальная машина, которая обращается к файлам на моем компьютере через общий ресурс Samba.

Надеюсь, это поможет.

0 голосов
/ 09 сентября 2014

OK. Я потратил большую часть дня, работая над этим. Если у вас нет доступа к панели API для редактирования доменов, которые разрешает ваш API Facebook (и вам нужно использовать SSL для его подделки).

Вот что я сделал:

Я запускаю сервер узлов на моем рабочем столе.

Вам нужно будет убедиться, что ваш сервер узлов уже указывает на любые файлы, которые вы хотите запустить / включить в свой проект. (то есть, если вы не используете узел для разработки, это решение, вероятно, не поможет вам).

Убедитесь, что у вас установлен экспресс и vhost. Я создал ключ сервера и сертификат, используя командную строку следующим образом:

openssl genrsa -out myKey.pem
openssl req -new -key key.pem -out csr.pem
openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out myCert.pem
rm csr.pem

Я переместил два файла в каталог моего текущего узла, откуда я запускаю свой экземпляр сервера.

Я создал экземпляр сервера следующим образом:

var vhost = require('vhost'),
express = require('express'),

vhost: {

     'default': 'www.mybigfakeserver.com'   // this should match what your api key allows
},

require('https').createServer({
        key: fs.readFileSync('myKey.pem'),
        cert: fs.readFileSync('myCert.pem')
}, app).listen(443);

Внутри вашего файла hosts добавьте все, что вам нужно, чтобы подделать. например,

127.0.0.1 www.mybigfakeserver.com

Это взято из API Facebook. Вам нужно будет добавить это в ваш HTML-файл:

<script>

     FB.init({
        appId      : 'PUT YOUR APP KEY HERE',
        version    : 'v2.0',
        status: true
     });
function(d, s, id){
  var js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) {return;}
      js = d.createElement(s); js.id = id;
      js.src = "//connect.facebook.net/en_US/sdk.js";
      fjs.parentNode.insertBefore(js, fjs);
 }(document, 'script'
, 'facebook-jssdk'));

</script>

Запустите сервер вашего узла.

Просмотр https://www.mybigfakeserver.com

Вы должны увидеть свой сайт. Теперь он сможет смоделировать ваш API-интерфейс на Facebook, заставляя вас думать, что вы работаете на своем обычном сервере, для которого было создано приложение.

Займитесь разработкой Facebook без необходимости все время развертывать.

0 голосов
/ 02 декабря 2012

Я использую рельсы 3.2.8, и это тоже работает для меня. Однако на компьютере Mac с Mountain Lion самым простым способом, который я нашел, было создание псевдонима под localhost для «somedomain.com:3000» в файле etc / hosts для URL сайта и без номера порта # в домене приложения.

0 голосов
/ 02 мая 2011

Странно, но вы пытались изменить локальное переопределение DNS (/etc/hosts или \WINDOWS\system32\drivers\etc\hosts), чтобы указать домен, который вы указали для приложения Facebook, на localhost?Это может сработать.

Могу поспорить, что они используют какую-то проверку URL-адреса реферера, и если они это сделают, вы можете перейти по URL-адресу в браузере, он будет перенаправлен на локальный хост, он попадет в таблицу api с нужным реферером, и выдолжен быть золотым.

Дайте мне знать, если это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...