Как проверить Facebook Connect локально


194

Я использую API ASP .NET и Facebook Connect. но когда я запускаю приложение и нажимаю кнопку «Подключить», он возвращается на веб-сайт, а не на тестовый локальный сервер ( http: // localhost: xxxx / test.aspx ). Итак, как я могу проверить Facebook локально (т.е. как я могу изменить URL обратного вызова)?


4
Ответ здесь: forum.developers.facebook.com/viewtopic.php?pid=116136 вы должны изменить "C: \ WINDOWS \ system32 \ Drivers \ Etc \ хозяев файл , чтобы сделать ваш домен прийти к вам LOCALHOST
Haytham

101
Эта система, похоже, плохо реализована со стороны Facebook. Кажется, им не приходило в голову, что кто-то захочет протестировать эту функцию, кроме как на живом сервере. Два решения, приведенные здесь - редактирование файла локальных хостов для подмены производственного сервера и перенаправления его на localhost и временное изменение действующего производственного URL-адреса на Facebook на localhost - оба замечательно плохой дизайн со стороны Facebook. Facebook должен добавить своего рода возможности тестирования в свою систему.
Пол Легато

2
Чтобы обойти это, нужно иметь 3 приложения -> live, QA и Dev. Так что, если ваше основное приложение apps.facebook.com/ohnice/ QA, а dev может быть apps.facebook.com/ohnice_qa_sd/ apps.facebook.com/ohnice_dev_fg/ да что-то случайное, так что у вас нет нежелательных посетителей, когда ваш дом не аккуратно.
tgkprog

1
@PaulLegato это делается сейчас (спустя годы ...). Посмотрите мое решение или одно из решений, использующих функцию тестирования.
Эрдал Дж.

Ответы:


236

Это достаточно просто, когда вы узнаете.

Открыть /etc/hosts(Unix) или C:\WINDOWS\system32\drivers\etc\hosts.

Если ваш домен foo.com, добавьте эту строку:

127.0.0.1    local.foo.com

Когда вы тестируете, откройте local.foo.comв вашем браузере, и он должен работать.


4
Чтобы отредактировать файл hosts на MAC, затем запустите «sudo pico / private / etc / hosts» в своем терминале, отредактируйте и нажмите «Ctrl X» для сохранения
Christoffer

@Christoffer: Я считаю, что / private / etc - это просто символическая ссылка на / etc, поэтому / etc / hosts и / private / etc / hosts - это один и тот же файл.
Freeall

1
Вы правы ... но некоторых из нас нужно кормить с ложечки и говорить "open / etc / hosts" просто недостаточно;) FB все еще терпит неудачу локально с этим решением для меня, хотя. Я не использую Facebook JS
Кристофер

5
Раньше это работало для меня до недавнего времени, но теперь я получаю connection refusedисключение при попытке войти, вероятно, из-за изменений на стороне Facebook. Любые идеи обходного пути высоко ценится.
онурматик

1
Если вы делаете это для доступа к локально работающему приложению Rails, вам, возможно, придется посетить local.foo.com: 3000` в вашем браузере, поскольку приложения Rails обычно запускаются на этом порту.
Дэвид Туит

102

Отредактируйте свое приложение по адресу www.facebook.com/developers/ и установите для «URL сайта» значение «http: // localhost / myapppath».

Когда закончите - измените его обратно.


19
Facebook не «подключается» обратно к вашему серверу. Их JS делает. И JS работает в контексте вашего браузера. Который знает, куда указывает localhost.
Алекс

Это не позволило бы мне добавить « местный сайт », я должен был убедиться, что у меня есть точка там. Это сработало: " local.site "
Пит

Некоторые функции FB не работают с этим. Например - сохранить достижения на серверах FB. Он хочет HTTPS, поэтому мой трюк с локальным хостом не работает :(
Костадин

2
Стоит отметить, что проверка в форме приложения требует, чтобы вы использовали localhost в URL-адресе, например, http://localhost/myappвместоhttp://myapp
graham

1
если вы используете другой порт, используйте этот шаблон: localhost: xxxx ), например: localhost: 8080
m0z4rt

77

Я предлагаю создать тестовое приложение (только для среды разработки) на https://developers.facebook.com/apps и установить: Website with Facebook Loginсвойство для вашего localhost: [port] settings.
эта опция будет работать без необходимости менять хосты.
не забудьте изменить appId обратно на ваше производственное приложение, как только вы начнете жить.

Редактировать - в последней версии FB вы найдете его на settingsвкладке. введите описание изображения здесь


2
Или просто используйте отдельные файлы конфигурации для, dev, staging и live.
Крис Барри

1
Больше не могу найти «Веб-сайт с Facebook Login».
Yehe

5
Кажется, вам нужно нажать на большую серую горизонтальную кнопку «+ Добавить платформу». Там у вас есть «Веб-сайт»
Лучано

75

Facebook добавил функцию тестовых версий.

Сначала добавьте тестовую версию своего приложения: создайте тестовое приложение

Создать тестовое приложение

Затем измените URL-адрес сайта на « http: // localhost » в разделе « Веб-сайт» и нажмите « Сохранить изменения».

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

Это все, но будьте осторожны: идентификатор приложения и App Секретные ключи различны для приложения и его тестовых версий!


что такое App Domain в панели настроек. я занимаюсь разработкой ионного приложения с помощью входа в Facebook
Chirag Thaker

1
@Chiragthaker Это домен, где будет размещено производственное приложение
Erdal G.

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

39

Вам не нужно делать ничего сложного!

Facebook → Настройки → Основные:
напишите « localhost » в поле « Домены приложения », затем нажмите « + Добавить платформу » и выберите « Веб-сайт » .

После этого, в " Site Url " поле написать LOCALHOST URL
(например: http://localhost:1337/something).

Это позволит вам проверить ваши плагины Facebook локально.


1
Есть ли обходной путь для файлов в файле пути: /// android_assets / www? Facebook не разрешит этот путь для URL сайта
Vignesh Subramanian

сейчас должен быть https
Simon_Weaver

@Simon_Weaver, откуда вы взяли эту информацию? это где-то задокументировано?
Колистров


@Simon_Weaver по той ссылке, которую вы отправили: «Вы по-прежнему сможете использовать HTTP с адресами« localhost », но только тогда, когда ваше приложение все еще находится в режиме разработки».
Колистров

5

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


3
Другой выбор туннеля - ngrok.com
Мохамед Селим

3

Я не мог использовать другие решения ... Для меня работало то, что я установил LocalTunnel.net (https://github.com/danielrmz/localtunnel-net-client), а затем использовал полученный URL в Facebook.


1

Похоже, FB просто изменил страницу приложения еще раз и добавил функцию под названием «Белый IP-адрес сервера».

  1. Зайдите в свое приложение и выберите «Настройки» -> вкладка «Дополнительно»
  2. Получите ваш общедоступный IP-адрес (Google скажет вам, если вы Google "Whats My IP")
  3. Добавьте свой общедоступный IP-адрес в белый список IP-адресов сервера и нажмите Сохранить изменения внизу

Что делать, если на сайте работают несколько разработчиков из разных мест? Мы используем VM (Vagrant), поэтому IP одинаков для всех разработчиков. К сожалению, Facebook не позволяет использовать локальные IP-адреса в белом списке. Не работает
Задачи из

Если я читаю ваш комментарий правильно, это не должно быть проблемой. Вы должны указать свой публичный IP-адрес, который, как вы говорите, одинаков для каждого разработчика (вы имели в виду, что он НЕ одинаков). Если у вас есть несколько разработчиков на разных сайтах с разными IP, вы можете использовать VPN для маршрутизации всего трафика через 1 IP.
семь семь

нет, общедоступный IP-адрес для разных машин в разных местах, конечно, не одинаков, просто локальный IP-адрес на каждой машине одинаков. (например, localhost). Я не хочу ничего маршрутизировать. На данный момент я использую localhost (просто пример) в приложении FB - который работает отлично. Но мне нужно решение, как только страница заработает. Facebook позволяет создавать «тестовые приложения» внутри приложения, что может быть решением, но я еще не пробовал. EDIT: кажется , что это решение
ProblemsOfSumit

1

перейти на страницу холста .. просмотреть его в браузере .. скопировать текст адресной строки. Теперь перейдите в приложение Facebook, перейдите к редактированию настроек.

на сайте, в URL сайта вставьте этот адрес

в интеграции Facebook, снова вставьте этот адрес в URL-адрес холста

а также тот же код везде, где вам требуется холст URL или URL перенаправления ..

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


-6

Создайте 2 приложения и

В /initializers/env_variables.rb

if Rails.env == 'development'
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
else
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
end
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.