Как я могу использовать localhost при разработке сайта facebook graph?

Я хочу использовать localhost для разработки приложения facebook facebook, используя график api. я работаю в asp.net С#

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

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

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

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

Ответ 1

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

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

Если у вас нет доступа к вашему DNS, тогда самый простой способ обойти это во время разработки - просто добавить запись в файл вашего компьютера ( "/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", и все должно работать.

OH - еще одна вещь - перенаправление uri на facebook также потребуется иметь номер порта, если ваш сервер разработки не запущен на порту 80, но он включает этот номер порта при сопоставлении URL-адреса домена (честно говоря, я считаю это ошибка API-интерфейсов facebook). Это означает, что если ваш сервер разработки (например) работает на порту 8080, вам нужно добавить ': 8080' в конец имени хоста в URI перенаправления, но если ваш сервер production работает на порту 80, тогда вы не должны ставить ": 80" в перенаправление uri, потому что в противном случае он будет работать только тогда, когда люди явно включили номер порта в URL-адрес, который они использовали для просмотра вашего (маловероятно на рабочем сервере). Все это на практике означает, что вам просто нужно иметь условное условие, чтобы при генерации URL аутентификации facebook вы включали только номер порта, если он не является портом 80.

Ответ 2

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

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

Ответ 3

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

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

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

EDIT: после повторного чтения других ответов я предполагаю, что некоторые разработчики разрабатываются в одном приложении Facebook, как они используют для производства, поэтому им нужно сопоставить свою машину с производственным доменом? Мы этого не делаем, у нас есть два "приложения". Один из них предназначен для тестирования с конфигурацией localhost и другой для производства. У нас есть компонент, который определяет во время выполнения среду, в которой он находится, и создает все необходимые URL-адреса, такие как перенаправления OAuth с идентификаторами приложений и секретами приложений, поэтому мы всегда запускаем один и тот же код, а другая конфигурация развернута на разных серверах.

Ответ 4

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

Ответ 5

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

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

Ответ 6

Вам нужно создать ssh tunnel FROM development server К вашему локальному компьютеру. Каждый запрос на dev-сервер будет обработан вашим компьютером и отправлен обратно.

Ответ 7

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