Как я могу использовать API-интерфейс графического интерфейса Facebook для моего локального хоста?

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

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

Ответ 1

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

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

Ответ 2

ТЛ; дг

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

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

Ответ 3

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

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

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

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

Ответ 4

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

Я уверен, что они используют какую-то проверку URL-адреса референта, и если они это сделают, вы можете посетить URL-адрес своего браузера, он будет маршрутизироваться на localhost, он попадет на график api с правильным реферированием, и вы должны быть золотыми.

Сообщите мне, если он работает.

Ответ 5

Я использую рельсы 3.2.8, и это сработало и для меня. Однако на mac с горным львом самым простым способом, который я нашел, было создание псевдонима под локальным хостом для "somedomain.com:3000" в файле etc/hosts для URL-адреса сайта и без порта # в домене приложения.

Ответ 6

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

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

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

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

Убедитесь, что у вас установлен express и 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

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

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

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

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

127.0.0.1 www.mybigfakeserver.com

Это взято из facebook api. Вам нужно добавить это в свой 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>

Запустите сервер node.

Перейдите к https://www.mybigfakeserver.com

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

Запустите разработку facebook без необходимости развертывания все время.