Ответ 1
Мое решение:
- Оставьте домены приложений пустыми
- (Продукты) Facebook login> Настройки
- Добавить
http://localhost:85/my_app/
в полеValid OAuth redirect URIs
- Сохранить изменения
Из учебника здесь:
http://ankurm.com/blog/api/using-localhost-for-facebook-app-development/1091/
Я попытался настроить локальную область разработки для своего приложения для Facebook. Но когда я помещал " http://localhost:85/my_app/" как мое доменное имя, Facebook говорит
Домены приложений: http://localhost:85/app-name/" не должны содержать информацию о протоколе.
Также, когда я помещаю "localhost: 85/my_app/" в качестве моего доменного имени, я получаю сообщение об ошибке:
Домены приложений: localhost: 85/my_app/не является допустимым доменом.
Мое решение:
http://localhost:85/my_app/
в поле Valid OAuth redirect URIs
Похоже, протокол был изменен.
Вот мое решение (я тестировал 3 апреля 2015 года и хорошо работает):
В Настройки → Базовая вкладка
http://localhost:port_number/
http://developers.facebook.com/docs/samples/canvas/ Счастливое кодирование: -)
Это изменилось за многие годы, но я просто получил его для работы с webapp, который я запускаю на localhost. Это то, что я сделал:
http://localhost:8080/
для URL-адреса сайта.http://localhost:8080/
для URL-адреса сайта.Удачи!
2018 рабочий раствор
Мне понадобилось много времени, чтобы понять это, поэтому я поделюсь своим решением.
Я перепробовал все предложенные ответы, но у меня ничего не получалось, и в конце концов все, что мне нужно было сделать, это перейти на https://developers.facebook.com/apps/YOUR_APP_ID/fb-login/settings/ и добавить мой полный URL-адрес для обратного вызова в поле Действительные URI перенаправления OAuth.
В моем случае, используя ruby на рельсах, мой URL выглядел следующим образом http://localhost:3000/user/auth/facebook/callback
.
И сразу после того, как я его добавил, все заработало! Надеюсь, что это помогает кому-то еще сталкиваться с этой проблемой.
Это то, что я делал раньше.
Если вы используете Windows, вам нужно изменить файл хоста. Расположение файла хоста будет в %SystemRoot%\System32\drivers\etc\
Добавьте новую строку в файл хоста следующим образом:
127.0.0.1 localhost.YOUR-SITE-NAME.com
Сохраните файл хоста.
Перейдите в панель управления настройками приложений FB и введите localhost.YOUR-SITE-NAME.com
в поле домена Apps. Сохранить изменения.
Теперь загрузите локальную среду, например localhost.YOUR-SITE-NAME.com
, из своего браузера.
NB. Измените ИМЯ САЙТА на свое доменное имя.
Рабочий раствор (август 2018 г.)
Сначала выберите свое приложение на панели инструментов разработчиков.
Затем убедитесь, что ваше приложение находится в режиме разработки, так как оно разрешает локальный хост по HTTP. Для этого нажмите на переключатель, расположенный в правом верхнем углу страницы вашего приложения.
Наконец, следуйте приведенным ниже примечаниям, так как они могут вызвать проблемы при неправильном заполнении:
Settings > Basic > App Domains
должен быть пустымProducts > Facebook Login > Settings > Valid OAuth Redirect URIs
должен быть пустымВы можете оставить его пустым или использовать localhost
, http://localhost:85/my_app/
- это URL
Когда я написал этот учебник, в то время порт был разрешен в домене приложений. И я действительно могу запустить приложение с 81 портом (Wamp Server). Теперь выглядит, что facebook не позволяет порт в URL. Вы можете использовать localhost
в домене приложения.
Я буду обновлять информацию как можно скорее. Я пытаюсь найти решение.
Временным решением является использование localtunnel http://progrium.com/localtunnel/
Вы должны создать туннель для совместного использования локального хоста; Ngrok - это самый простой способ сделать это.
Перейдите по ссылке https://ngrok.com/, чтобы загрузить ngrok и извлечь этот файл. Открыть cmd (поиск cmd) Перейдите в каталог, в котором извлекается ngrok. Откройте ngrok из командной строки ex: c:/ngrok/ngrok.exe [порт] или cd c:/ngrok, затем ngrok 80 (ngrok [порт]) Вы получите
ngrok
Tunnel Status online
Version 1.3/1.3
Forwarding http://3ahsdfhska.ngrok.com -> 127.0.0.1:80
Forwarding https://3ahsdfhska.ngrok.com -> 127.0.0.1:80
Web Interface http://127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms
Dont FORGET, чтобы убедиться, что ваш сервер Wamp открыт на том же порту... (как проверить → goto- > wampicon- > apache- > httpd.conf искать порт или 80 (по умолчанию) использовать для ngrok.exe 80)
http://3ahsdfhska.ngrok.com
будет URL для доступа к вашему локальному хостингу
Если вы получаете ошибки протокола, вам не только нужно УДАЛИТЬ Http://, но также, если есть какая-либо обратная косая черта в конце веб-адреса, вы должны удалить это тоже, или оно не будет работать. Я сделал это, и это сработало отлично! Holla!
Отбрасывание еще одного раствора в смесь:
Я установил свой сайт в соответствии с инструкциями, затем добавил второе приложение (Facebook Canvas) и установил его для http://localhost:XXXXX
. Теперь я могу получить доступ к FB как локально, так и в производстве.
Я разрабатываю локально, и я использую этот URL: localhost/fb
Затем мне пришлось добавить сайт со следующим URL-адресом: http://localhost
В разделе "Домены приложений" я добавил localhost
.
Теперь он работает. Единственная проблема, с которой я столкнулся, заключается в том, что вы должны использовать этот URL во всех своих сценариях. Например.
$loginUrl = $helper->getLoginUrl('http://localhost/fb/login-callback.php', $permissions);
Вы не можете использовать 127.0.0.1
здесь...
Я перепробовал все решения, упомянутые здесь, но ни одно из них не сработало.
Моя проблема была решена путем копирования "URI перенаправления OAuth" из firebase в приложение Facebook "Действительные URI перенаправления OAuth"
Я оставил все домены пустыми