Разработка Facebook в localhost


177

Просто хотел узнать, могу ли я как-нибудь разработать приложения для Facebook на localhost.

Ответы:


246

Редактировать: 2-15-2012 Вот как использовать FB-аутентификацию для сайта localhost.

Я нахожу более масштабируемым и удобным создание второго приложения Facebook. Если я собираю MyApp, я создам второй файл под названием MyApp-dev.

  • Создайте новое приложение по адресу https://developers.facebook.com/apps.
  • (Новое 15.02.2012) Установите Websiteфлажок «Выбрать, как ваше приложение интегрируется с Facebook» (в последней версии Facebook вы можете найти это в «Настройки»> «Основные»> «Добавить платформу» - затем выберите веб-сайт)
  • Установите в поле URL сайта ( НЕ в поле «Домены приложения» ) значение http: //www.localhost: 3000 (этот адрес для Ruby on Rails, при необходимости измените)

введите описание изображения здесь

  • В инициализаторе приложения введите код для обнаружения среды
    • Пример кода Rails 3
      if Rails.env == 'разработка' || Rails.env == 'тест'
        Rails.application.config.middleware.use OmniAuth :: Builder do
          поставщик: facebook, DEV_APP_ID, DEV_APP_SECRET
        конец
      еще
        # Производство
        Rails.application.config.middleware.use OmniAuth :: Builder do
          поставщик: facebook, «PRODUCTION_APP_ID», «PRODUCTION_APP_SECRET»
        конец
      конец
      

Я предпочитаю этот метод, потому что, как только он настроен, коллеги и другие машины не имеют дополнительной настройки.


3
+1 Это странно! Люди говорят, что вы не можете добавить localhost в качестве URL своего приложения. Но это просто работает для меня. Спасибо!
— Кейн Виана

15
Это все еще так для тебя? Кажется, я не могу добавить localhost, 127.0.0.1:5000 или что-то похожее на домен моего приложения для Facebook.
— Пит

Я просто попытался создать новый и столкнулся с проблемой «неверный домен». Спасибо за улов
— Эрик Ху

1
@zoltarSpeaks Смотрите мой обновленный ответ. Вы должны использовать другое поле, а не «домен приложения»
— Эрик Ху,

1
будет ли это переопределять файл initialized / devise.rb config.omniauth: facebook, 'APP_KEY', 'APP_SECRET',: scope => "email, offline_access .."?
— исчезли

26

Конечно, вы можете просто добавить URL localhost (без «http») в ваш app_domain, а затем добавить в site_url http://localhost(с http)

Обновить

Facebook немного изменил ситуацию, просто зайдите в настройки приложения и в URL сайта просто добавьте http: //localhostи оставьте домен приложения пустым


Это полностью работает. На нашей стороне забора ничего не нужно.
— Godspeedelbow

10
Это больше не работает, вы получаете ошибку, что не можете добавить домены верхнего уровня
— Джош Бедо

20

Вот мой конфиг, и он прекрасно работает для PHP API:

домен приложения

   http://localhost

адрес сайта

   http://localhost:8082/

1
пришлось заполнить оба этих текстовых ввода для работы localhost
— paulruescher

19

ПРИМЕЧАНИЕ. Начиная с 2012 года Facebook разрешает регистрировать "localhost" в качестве URL-адреса возврата. Вам все еще может понадобиться аналогичный обходной путь для других поставщиков (например, Microsoft).

Если вам нужно реальное доменное имя, зарегистрированное в Facebook (например, my.really.own.domain.com), вы можете локально перенаправлять запросы в этот домен на свой компьютер. Самый простой из готовых подходов на любой ОС - изменить файл hosts для сопоставления домена 127.0.0.1 (см. Http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAA и https: / /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file ).

Я обычно использую Fiddler, чтобы сделать это для меня (в Windows с локальным IIS) - см. Примеры на http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp .

if (oSession.HostnameIs("my.really.own.domain.com")) {
   oSession.host="localhost:80";
}

Подход с использованием файла Hosts не работает с Visual Studio Development Server, поскольку требует, чтобы входящие URL-адреса были localhost / 127.0.0.1. Если вам нужно работать с ним (или, возможно, с IIS Express) для переопределения хоста - Использование Fiddler с IIS7 Express


9

Facebook больше не допускает URL-адрес обратного вызова «localhost» для приложений FBML Facebook


убедитесь, что в настройках безопасности Facebook отключен «Безопасный просмотр». Это сделает ваш локальный хост недоступным, если он включен.
— Супайб

9

С новым центром разработки теперь стало проще:

1) Оставьте домены приложения пустыми.
2) Нажмите Добавить платформу.
3) URL-адрес сайта должен соответствовать полному пути вашего локального хоста.
4) Сохранить изменения


1
Проверено, что это лучший способ установить локальный хост. Просто вставьте базовый URL в вашу среду разработки, как указано выше, без http: //, и Facebook добавит его для вас. Простые вещи! Спасибо Джей
— Keade

1
Это решение решило мою проблему при работе на локальном хосте
— Rola

8

Я только что нашел обходной путь: вы можете сделать свой локальный компьютер доступным с помощью http://localtunnel.com . Вам необходимо (временно) изменить некоторые URL-адреса, используемые в коде приложения / html, чтобы ссылки указывали на временный домен, но по крайней мере Facebook может достичь вашего компьютера.


7

В основных настройках вашего приложения ( https://developers.facebook.com/apps ) в разделе «Настройки» -> «Основные» - > выберите способ интеграции приложения с Facebook ...

Используйте «URL сайта:» и «URL мобильного сайта:» для хранения ваших рабочих и разработанных URL соответственно. Оба сайта будут авторизованы. Я просто использую Facebook для аутентификации, поэтому мне не нужны никакие функции перенаправления мобильного сайта. Обычно я изменяю «URL-адрес мобильного сайта:» на свой сайт «localhost: 12345», когда проверяю аутентификацию, а затем возвращаю его в нормальное состояние после завершения.


5

Там есть ! Мое решение работает, когда вы создаете приложение, но вы хотите использовать аутентификацию facebook на своем веб-сайте. Это решение ниже НЕ требуется, если вы хотите создать приложение, интегрированное в FB-страницу.

Дело в том, что вы не можете поместить "localhost" в качестве домена на странице конфигурации Facebook вашего приложения. Причины безопасности ?

Вам нужно перейти к файлу вашего хоста, в OSX / Linux и т. Д. / Hosts и добавить следующую строку: 127.0.0.1 dev.yourdomain.com

Домен вы положили, что вы хотите. Одной из ошибок является добавление этой строки: localhost dev.yourdomain.com (по крайней мере на OSX Snow Leopard в не работает).

Затем вы должны очистить ваш DNS-кеш. В OSX: введите dscacheutil -flushcache в терминале. Наконец, вернитесь на веб-сайт разработчика Facebook, и на странице конфигурации своего приложения вы можете добавить домен «dev.yourdomain.com».

Если вы используете такую ​​программу, как Mamp, Easyphp или любую другую, убедитесь, что порт для Apache равен 80.

Это решение должно работать для Windows, поскольку оно также имеет файл hosts. Тем не менее, насколько я помню, Windows 7 больше не использует этот файл, но этот прием должен сработать, если вы найдете способ заставить Windows использовать файл hosts.


работает для win8.1 c: \ windows \ system32 \ drivers \ etc \ hosts. Вам может потребоваться сбросить «Кэш распознавателя хоста» в chrome URL = chrome: // net-internals / # dns
— rnrneverdies

5

Вы должны выбрать продукт Facebook «Facebook login» и включить Client OAuth Login, «Web OAuth Login» и «Embedded Browser OAuth Login», даже если вы дадите локальный URL-адрес. Это будет работать введите описание изображения здесь


Это помогло продвинуть проблему. Сообщение от FB от 23.02.2008: В марте мы производим обновление безопасности для параметров вашего приложения, которое сделает недействительными вызовы с URI, не указанных в поле Valid OAuth-перенаправления URI ниже. Это обновление происходит в ответ на злонамеренную деятельность мы видели на нашей платформе, и мы хотим защитить ваше приложение или веб-сайт, требуя новый строгий режим для URI перенаправления.
— Тим Тайлер

1
Fb теперь требует https для обратного вызова. Localhost не поддерживает https.
— huuthang

1
@huuthang, так что весь этот Q / A устарел.
— RGB


3

Я думаю, что вы должны иметь возможность разрабатывать приложения с использованием веб-сервера разработки Visual Studio: Запустите новое приложение FaceBook на: http://www.facebook.com/developers/ . Затем настройте параметры для URL-адреса сайта и URL-адреса холста для работающего экземпляра вашего сайта, например: http: // localhost: 1062 /

Вот несколько ссылок, которые помогут вам начать с FaceBook:

  1. http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development/ ,
  2. http://nagbaba.blogspot.com/2010/05/experiencing-facebook-javascript-sdk.html ,
  3. http://apps.facebook.com/thinkdiffdemo/

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


3

Попробуй это ---

https://www.facebook.com/help/community/question/?id=589302607826562

1 - Нажмите «Приложения» и выберите свое приложение.

2 - Нажмите кнопку «Настройки» в левой части экрана.

3 - В разделе «Основные настройки» нажмите кнопку «Добавить платформу» под конфигурацией параметров.

4 - Выберите сайт в диалоговом окне платформы.

5 - Введите свой URL (здесь работает localhost).

6 - В поле ввода доменов приложения добавьте домен, который совпадает с доменом в URL.

7 - Сохраните ваши настройки.


2

Предположим, что вы зарегистрировали свое приложение как:

app.domain.com

Вам просто нужно изменить файл / etc / hosts, добавив

127.0.0.1 dev01.app.domain.com

Затем измените конфигурацию Apache

ServerName dev01.app.domain.com

и перезапустите Apache.

Вам нужно будет поместить свой URL в переменную, чтобы использовать его в качестве параметра XML для некоторых вызовов:

<fb:login-button registration-url="http://<?=$URL?>/register" />

2

Недостаточно доверия, чтобы комментировать ответ с наибольшим количеством голосов, но, по крайней мере, в моей среде rails (работает 4), rails s есть http://localhost:3000, а не http://www.localhost:3000. Когда я изменил его http://localhost:3000, он работал просто отлично. Нет необходимости редактировать любой файл хостов.


2

app domain : localhost

site URL : http://localhost:4440/

работал для меня с новым пользовательским интерфейсом.


0

Мое решение отлично работает на локальном хосте ..... Для использования URL-адресов сайтов http://localhost/ и для доменов приложений localhost/folder_name Остальное все одинаково ....... работает нормально (хотя в App Domain показывается красный флаг ... Приложение работает нормально)


0

Просто перейдите на панель инструментов приложения на вкладке входа в систему Facebook, нажмите «Настройки», затем выберите «Принудительно использовать HTTP Нет», сохраните настройки.введите описание изображения здесь


0

Приложение будет нормально работать в localhost: 3000, вам просто нужно указать адрес https, по которому приложение будет работать, когда оно будет в рабочем режиме.
Вариант 2 - предоставить URL-адрес или веб-сайт вашей герои, который позволяет вам использовать образец приложения в производственном режиме.

введите описание изображения здесь


0

Последнее обновление: вам не нужно указывать URL-адреса, если вы тестируете его в разработке. Вы можете оставить поля пустыми. Убедитесь, что ваше приложение находится в режиме разработки. Если нет, отключите статус из живого.

Нет необходимости указывать URL сайта, домены приложения или действительное перенаправление oauth uri.

введите описание изображения здесь


1
Обратите внимание, что если вы переключите свое приложение из «живого» в «разработку», вы сможете войти в систему с локального хоста на компьютере разработчика, но ВСЕ ВАШИ ЖИВЫЕ ПОЛЬЗОВАТЕЛИ НЕ смогут больше войти в систему.
— webdevbyjoss

Я сделал это, и это все еще дало мне ошибку, и кнопка fb не
— появлялась

После создания приложения нажмите кнопку «Создать тестовое приложение», чтобы получить приложение только для разработки / тестирования. Мне все еще нужно было добавить «localhost» в домены приложения.
— Нет

@ J.Money Я думаю, что сейчас это может измениться. Спасибо, что дал мне знать.
— Vigneshwaran Sivalingam
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.