Разработка 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/
tradmed
источник
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

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

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

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

JSV
источник
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.

MartinL
источник
работает для 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/

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

sftsz
источник
0

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

потрясающий
источник
0

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

Джером Блэк
источник
0

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

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

Видур Пендж
источник
0

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

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

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

Vigneshwaran Sivalingam
источник
1
Обратите внимание, что если вы переключите свое приложение из «живого» в «разработку», вы сможете войти в систему с локального хоста на компьютере разработчика, но ВСЕ ВАШИ ЖИВЫЕ ПОЛЬЗОВАТЕЛИ НЕ смогут больше войти в систему.
webdevbyjoss
Я сделал это, и это все еще дало мне ошибку, и кнопка fb не
появлялась
После создания приложения нажмите кнопку «Создать тестовое приложение», чтобы получить приложение только для разработки / тестирования. Мне все еще нужно было добавить «localhost» в домены приложения.
Нет
@ J.Money Я думаю, что сейчас это может измениться. Спасибо, что дал мне знать.
Vigneshwaran Sivalingam