Как я могу использовать localhost при разработке веб-сайта графа Facebook? - PullRequest
12 голосов
/ 20 июля 2010

Я хочу использовать localhost для разработки приложения для веб-сайта Facebook с использованием графика API. я работаю в asp.net c #

в предыдущем API Facebook я был, чтобы написать http://localhost:4300/ в URL-адресе подключения в настройках приложения.

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

кто-нибудь предложения?

** Если я загружаю сайт и использую URL-адрес сайта, он работает.

Ответы [ 7 ]

21 голосов
/ 14 июня 2011

Facebook не имеет значения, на каком фактическом IP-адресе находится ваш сервер, но он проверит, совпадает ли доменное имя ссылающейся страницы с доменом, который вы зарегистрировали в Facebook.Хитрость, чтобы заставить его работать во время разработки, состоит в том, чтобы найти способ использовать ваше доменное имя, даже когда вы просто работаете на своем локальном компьютере для разработки.

Если у вас есть полный контроль над записями DNS, вы можетедобавьте запись хоста (например, «test.yourdomain.com»), которая либо указывает на реальный IP-адрес вашего компьютера для разработки (если это статический ip), либо просто на 127.0.0.1

Если вы этого не сделаетеу вас нет доступа к вашему DNS, тогда самый простой способ обойти это во время разработки - просто добавить запись в файл hosts вашего компьютера ('/ etc / hosts' на OSX и большинстве других компьютеров с Unix), указывая домен, который вы зарегистрировали на Facebook, наваш локальный хост-компьютер.так что вы добавили бы такую ​​строку:

127.0.0.0 test.yourdomain.com

в конец вашего файла hosts.Это означает, что если вы сейчас введете test.yourdomain.com в своем веб-браузере, он будет разрешен на вашем локальном компьютере.

Сейчас - в разделе «веб-сайт» настройки приложения в Facebook убедитесь, что вы добавиливаше доменное имя в разделе «домен домена» в настройках - это будет означать, что Facebook будет принимать запросы, поступающие с любого субдомена вашего домена, - другими словами, он будет принимать запросы как с «www.yourdomain.com» (ваш рабочий сервер)) и «test.yourdomain.com» (ваш локальный компьютер для разработки).

Теперь вы должны просто иметь возможность разрабатывать на своем локальном компьютере, используя URL «test.yourdomain.com» в браузере, а не «localhost 'и все должно работать.

ОН - еще одна вещь - URI перенаправления facebook также должен будет иметь номер порта, если ваш сервер разработки не работает на порту 80, но он включает этот номер порта, когдасоответствие URL домена (честно говоря, я считаю это ошибкой в ​​API Facebook).Это означает, что если ваш сервер разработки (например) работает на порту 8080, то вам нужно добавить «: 8080» в конец имени хоста в URI перенаправления, но если ваш производственный сервер равен при работе на порту 80 вы не должны вставлять «: 80» в URI перенаправления, потому что в противном случае это будет работать только тогда, когда люди явно включили номер порта в URL, который они использовали для просмотра вашей страницы (вряд ли на рабочем сервере).На практике все это означает, что вам просто нужно иметь условное выражение, чтобы при создании URL-адреса аутентификации facebook вы указывали только номер порта, если это не порт 80.

3 голосов
/ 11 ноября 2011

Добавьте «localhost» в настройку «App Domain» вашего приложения на Facebook. Кроме того, если вы делаете что-то вроде перенаправления «MyApp.test» на 127.0.0.1 на локальном сервере, вы также можете добавить «MyApp.test» в «Домен приложения», и он будет работать.

Я только что попробовал это после поиска решения этой проблемы. Это очень простое решение.

2 голосов
/ 03 мая 2012

Проверьте следующие основные настройки в конфигурации Facebook вашего приложения:

  • Пространство имен установлено
  • Домен приложения включает в себя «localhost»
  • URL-адреса Canvas и URL-адреса Secure Canvas имеют домен "localhost" в своих URL-адресах

Если при сохранении параметров конфигурации приложения появляется ошибка «имя приложения», уверены ли вы, что имя приложения действительно и еще не занято? Мы постоянно используем localhost (с ASP.Net, IISExpress и очень большими номерами портов) с четырьмя или пятью различными приложениями с несколькими пользователями на разных компьютерах, и нам никогда не нужно выполнять какие-либо дополнительные действия, описанные некоторыми людьми в своих ответах.

РЕДАКТИРОВАТЬ: после перечитывания других ответов, я думаю, что некоторые разработчики разрабатывают для того же приложения Facebook, что они используют для производства, поэтому им нужно сопоставить свою машину с рабочим доменом? Мы этого не делаем, у нас есть два «приложения». Один для тестирования с конфигурацией localhost, а другой для производства. У нас есть компонент, который во время выполнения определяет, в какой среде он находится, и создает все необходимые URL-адреса, такие как перенаправления OAuth с идентификаторами приложений и секретами приложений, поэтому мы всегда выполняем один и тот же код, только разные конфигурации развертываются на разных серверах.

0 голосов
/ 15 января 2015

Вы не можете добавить домены верхнего уровня в настройках Facebook. FYI

0 голосов
/ 20 июля 2010

Вы должны создать туннель ssh ОТ сервера разработки К вашему локальному компьютеру. Каждый запрос к серверу разработки будет обрабатываться вашим компьютером и отправляться обратно.

0 голосов
/ 20 июля 2010

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

Чтобы найти свой IP-адрес: http://whatismyipaddress.com/

0 голосов
/ 20 июля 2010

Вы уверены, что проблема связана с DNS-именем и / или портом вашего веб-сервера? Если да, вы можете использовать свой локальный IIS вместо сервера webdev, настройте веб-сайт yourdomain.com и добавьте запись к хостам, говоря 127.0.0.1 yourdomain.com

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