2012-02-04 6 views
5

Чтобы публиковать обновления в реальном времени для моего приложения, Facebook необходимо выполнить почтовый запрос на моем сервере.Как проверить Facebook Обновления в реальном времени

Проблема в том, что мой сервер - это мой домашний компьютер и не публично адресуемый из Интернета. Приведение сервера в жизнь для реализации этого звучит, как будто это может быть боль ... не может прикреплять отладчик, скрипт и т. Д.

Так что лучший способ проверить конечную точку Http? Интеграционные тесты, имитирующие сервер Facebook? Возиться с брандмауэрами/NAT, чтобы попытаться заставить Facebook поговорить с моим домашним компьютером?

Любые идеи?

ответ

6

Вы можете использовать ngrok - https://ngrok.com/ - бесплатную услугу (оплачивать что-вы), которая делает именно то, что вам нужно. Служба Localtunnel отключена, и разработчики также рекомендуют ngrok.

0

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

Существует множество бесплатных хостингов, которые позволяют создавать скрипты на стороне сервера. И там много платят за webhosts. Stackoverflow на самом деле не является местом, где можно получить информацию о том, где/когда/почему/howmuch для веб-хостинга.

2

OK! Я думаю, что NAT должен быть лучшим выбором, и я не вижу причины, чтобы он не работал. Вы должны попробовать.

2

На самом деле это довольно просто. Записал мой домашний маршрутизатор, настроил переадресацию портов на порт 80 на локальный IP-адрес моего компьютера, поместил исключение в брандмауэр Windows для порта 80. а затем перейдите к моему общедоступному IP-адресу в браузера.

Реализовать образцы приемников на: https://github.com/facebook/real-time/tree/master/samples

4

В прошлом, я использовал LocalTunnel, чтобы сделать это. Это хорошая обложка вокруг SSH-туннеля, и она эффективно назначает вам субдомен на localtunnel.com, указывающий на порт на вашем локальном хосте.

Так что, в основном, когда вы запустите его, он вернет внешнее доступное поддоменное имя, такое как xyz.localtunnel.com, а порт 80 укажет порт, который вы указываете в своем локальном поле.

Вы можете найти его по адресу: http://progrium.com/localtunnel/

Это действительно отлично подходит для тестирования различных PubSubHubbub подписных каналов (например, на Facebook).

0

Нет, вы не можете использовать ngrok только для имитации обновления в реальном времени facebook, так как вы должны позвонить на сервер facebook с вашим адресом ngrok, чтобы проверить его (скажите, если вы узнаете, как это сделать: p). Я использую сервер openshift, чтобы получать в реальном времени facebook, а затем отправлять данные evry json, полученные от facebook, к моему адресу ngrok. Таким образом, процесс

  1. настроить сервер OpenShift получать уведомления facebook
  2. Facebook отправляет уведомления на ваш OpenShift
  3. ваш OpenShift посылает ДАННЫЕ (как получено) к вашему ngrok адресу

И если вы должны получать уведомления на facebook на локальном веб-сайте (например, www.website.dev/fb-notifications /), затем создайте скрипт в вашей папке localhost, которая получит сообщения с открывающейся сменой (назовем это tunelscript.php). процесс будет

  1. настроить сервер OpenShift получить facebook уведомления
  2. Facebook отправляет уведомления на ваш OpenShift
  3. ваш OpenShift посылает ДАННЫЕ (как получено) к вашему Tünel сценарию через ваш ngrok адреса (персидско. ngrok.com/tunelscript.php)
  4. реле Данные из вашего tunelscript на локальный сайт (tunelscript.php => www.website.dev/fb-notifications/)

Это Tuneling B-)

+1

Plain ngrok отлично подходит для этого. Вам необходимо передать правильный URL-адрес http://yoursite.ngrok.com/callback в поле «callback_url», когда вы выполняете запрос HTTP POST на https://graph.facebook.com/subscriptions, чтобы настроить его. –

Смежные вопросы