Ответы:
Редактировать: 2-15-2012 Вот как использовать FB-аутентификацию для сайта localhost.
Я нахожу более масштабируемым и удобным создание второго приложения Facebook. Если я собираю MyApp, я создам второй файл под названием MyApp-dev.
Website
флажок «Выбрать, как ваше приложение интегрируется с Facebook» (в последней версии Facebook вы можете найти это в «Настройки»> «Основные»> «Добавить платформу» - затем выберите веб-сайт)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» конец конец
Я предпочитаю этот метод, потому что, как только он настроен, коллеги и другие машины не имеют дополнительной настройки.
Конечно, вы можете просто добавить URL localhost (без «http») в ваш app_domain, а затем добавить в site_url http://localhost
(с http)
Обновить
Facebook немного изменил ситуацию, просто зайдите в настройки приложения и в URL сайта просто добавьте http: //localhost
и оставьте домен приложения пустым
Вот мой конфиг, и он прекрасно работает для PHP API:
домен приложения
http://localhost
адрес сайта
http://localhost:8082/
ПРИМЕЧАНИЕ. Начиная с 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
С новым центром разработки теперь стало проще:
1) Оставьте домены приложения пустыми.
2) Нажмите Добавить платформу.
3) URL-адрес сайта должен соответствовать полному пути вашего локального хоста.
4) Сохранить изменения
Я только что нашел обходной путь: вы можете сделать свой локальный компьютер доступным с помощью http://localtunnel.com . Вам необходимо (временно) изменить некоторые URL-адреса, используемые в коде приложения / html, чтобы ссылки указывали на временный домен, но по крайней мере Facebook может достичь вашего компьютера.
В основных настройках вашего приложения ( https://developers.facebook.com/apps ) в разделе «Настройки» -> «Основные» - > выберите способ интеграции приложения с Facebook ...
Используйте «URL сайта:» и «URL мобильного сайта:» для хранения ваших рабочих и разработанных URL соответственно. Оба сайта будут авторизованы. Я просто использую Facebook для аутентификации, поэтому мне не нужны никакие функции перенаправления мобильного сайта. Обычно я изменяю «URL-адрес мобильного сайта:» на свой сайт «localhost: 12345», когда проверяю аутентификацию, а затем возвращаю его в нормальное состояние после завершения.
Там есть ! Мое решение работает, когда вы создаете приложение, но вы хотите использовать аутентификацию 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.
Вы должны выбрать продукт Facebook «Facebook login» и включить Client OAuth Login, «Web OAuth Login» и «Embedded Browser OAuth Login», даже если вы дадите локальный URL-адрес. Это будет работать
это работает в июне 2018 года, даже после требования HTTPS. Похоже, тестовое приложение не требует https:
создать тестовое приложение: https://developers.facebook.com/docs/apps/test-apps/
затем в тестовом приложении выполните простые шаги из этого видео: https://www.youtube.com/watch?v=7DuRvf7Jtkg
Я думаю, что вы должны иметь возможность разрабатывать приложения с использованием веб-сервера разработки Visual Studio: Запустите новое приложение FaceBook на: http://www.facebook.com/developers/ . Затем настройте параметры для URL-адреса сайта и URL-адреса холста для работающего экземпляра вашего сайта, например: http: // localhost: 1062 /
Вот несколько ссылок, которые помогут вам начать с FaceBook:
Надеюсь это поможет.
Попробуй это ---
https://www.facebook.com/help/community/question/?id=589302607826562
1 - Нажмите «Приложения» и выберите свое приложение.
2 - Нажмите кнопку «Настройки» в левой части экрана.
3 - В разделе «Основные настройки» нажмите кнопку «Добавить платформу» под конфигурацией параметров.
4 - Выберите сайт в диалоговом окне платформы.
5 - Введите свой URL (здесь работает localhost).
6 - В поле ввода доменов приложения добавьте домен, который совпадает с доменом в URL.
7 - Сохраните ваши настройки.
Предположим, что вы зарегистрировали свое приложение как:
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" />
Недостаточно доверия, чтобы комментировать ответ с наибольшим количеством голосов, но, по крайней мере, в моей среде rails (работает 4), rails s есть http://localhost:3000
, а не http://www.localhost:3000
. Когда я изменил его http://localhost:3000
, он работал просто отлично. Нет необходимости редактировать любой файл хостов.
Мое решение отлично работает на локальном хосте ..... Для использования URL-адресов сайтов http://localhost/
и для доменов приложений localhost/folder_name
Остальное все одинаково ....... работает нормально (хотя в App Domain показывается красный флаг ... Приложение работает нормально)
Приложение будет нормально работать в localhost: 3000, вам просто нужно указать адрес https, по которому приложение будет работать, когда оно будет в рабочем режиме.
Вариант 2 - предоставить URL-адрес или веб-сайт вашей герои, который позволяет вам использовать образец приложения в производственном режиме.
Последнее обновление: вам не нужно указывать URL-адреса, если вы тестируете его в разработке. Вы можете оставить поля пустыми. Убедитесь, что ваше приложение находится в режиме разработки. Если нет, отключите статус из живого.
Нет необходимости указывать URL сайта, домены приложения или действительное перенаправление oauth uri.