Позвольте мне сначала начать с того, что я искал ответ на этот вопрос в течение некоторого времени...
Я пытаюсь настроить Facebook OAuth для работы с моим приложением, которое разрабатывается локально на моей машине. Все отлично работало с авторизацией в Facebook. Я перешел от использования localhost
к другому доменному имени (по-прежнему локально к моей машине.) Теперь я получаю следующую ошибку.
Невозможно загрузить URL-адрес: домен этого URL-адреса не включен в приложение. домены. Чтобы загрузить этот URL-адрес, добавьте все домены и поддомены вашего приложения в поле "Домены приложений" в настройках вашего приложения.
Мой файл hosts содержит 127.0.0.1 photovote.dev
(отлично работает)
Мое перенаправление в моем приложении (используя Socialite) - http://photovote.dev/auth/facebook/callback
В моих настройках приложения Facebook...
photovote.dev
http://photovote.dev/
http://photovote.dev/auth/facebook/callback
URL-адрес во время сообщения об ошибке:
Я в недоумении, что проблема...
Экранный снимок 1
Экранный снимок 2
Это обычно происходит, если вы ввели неправильные данные при создании приложения в Facebook. Или вы изменили URL-адрес существующего приложения?
Можете ли вы перепроверить настройки своего APP на этой странице?
https://developers.facebook.com/apps
Выберите правильное приложение и нажмите кнопку редактирования;
Проверьте правильность ввода URL-адресов и путей и указывайте на сайт, на котором установлен плагин Ultimate Facebook.
Если кто-то сталкивается с этим и ищет эти настройки (например, я был)
Вы должны
Дополнительная информация: Обязательно добавьте URL-адрес обратного вызова, например http://localhost:3000
, в поле Valid OAuth redirect URIs
на странице настроек входа в Facebook
У меня была та же проблема. Я решил это, добавив мой URI перенаправления OAuth в качестве аргумента для вызова функции getAccessToken:
$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")
Если в эту функцию не передается аргумент, SDK сам генерирует URI-редиректа, который должен работать, но в моем случае это не так.
Надеюсь, это поможет кому-то.
Убедитесь, что ваше приложение является общедоступным. Нажмите + Добавить продукт Теперь перейдите к продуктам = > Facebook Войти Теперь сделайте следующее:
Действительные URI перенаправления OAuth: example.com/
Деактивировать URL-адрес обратного вызова: https://example.com/facebookapp
Deauthorize Callback URL : https://example.com/facebookapp
? Будет ли это работать без этого?
Вот что я сделал для решения этой проблемы:
В принципе:
1) Включить " Встроенный браузер OAuth Login "
2) Отключите " Использовать строгий режим для перенаправления URI " и введите URI перенаправления, как и я.
3) Оставьте все остальные варианты, как есть.
4) Сохраните изменения.
5) Наслаждайтесь :)
У меня была та же проблема, и она исходила из неправильного идентификатора приложения client_id/Facebook.
Вы переключили свое приложение Facebook на "общедоступный" или "онлайн"? Когда вы это сделаете, Facebook создает новое приложение с новым идентификатором приложения.
Вы можете сравнить значение параметра "client_id" в URL-адресе с таковым на панели управления Facebook.
Как я ее исправил: я перешел в текстовое поле Valid UA Redirect URI и установил точный URL-адрес, а не только домен:
до: https://my-website.com
после: https://my-website.com/facebookoauth/facebooklogin
(URL-адрес может быть другим в вашем случае, проверьте его в адресной строке браузера).
Это было вызвано установкой Использовать строгий режим для URI переадресации, который был заблокирован в позиции "Да".
Нажмите здесь Code Project ! Пример его кода. Его работа со мной
По состоянию на 2017-10.
Решение, решившее мою проблему.
В настоящее время FB делает этот сюрприз.
... приложения Настройки клиента OAuth. Убедитесь, что вход в систему Client and Web OAuth включен...
Настройки для настройки находятся здесь https://developers.facebook.com/apps/[your_app_itentifier]/fb-login/.
Крайняя косая черта важна. Они должны совпадать в вашем коде приложения и в настройках администратора FB. Так что это конфиг где-то в вашем коде (см. Ниже, как получить любое доменное имя для приложения dev):
{
callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}
и здесь
Чтобы получить любое доменное имя для приложения на локальной машине Windows, отредактируйте файл host
. Пользовательские имена хороши, чтобы избавиться от всех этих localhost:8080
, 0.0.0.0:30303
, 127.0.0.0:8000
и т.д. Поскольку некоторые сторонние службы, такие как FB, иногда не позволяют использовать имена 127.0.0.0
.
В Windows 10 hosts
файл находится здесь:
C:\Windows\System32\drivers\etc\hosts
Резервный исходный файл, создайте копию с другим именем (не работает в родной Windows CMD. Я использую Git для Windows., он имеет много команд Unix)
$ cp hosts hosts.bak
Добавьте это в hosts
127.0.0.1 myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1 www.myotherapp.io # In a browser http://www.myotherapp.io:2020
Чтобы избавиться от портовой части :3000
, установите NGINX, например.
У меня была та же проблема,
Я только что добавил ссылку моего локального адреса http://localhost/Facebook%20Login%20Test.html на Site URL
в настройках моего приложения https://developers.facebook.com/apps.
Теперь он отлично работает:) Я надеюсь, что это было полезно;)
Для меня ничего не работало, пока я не обновил версию SDK, которую я использовал. Я начал с 5.0. Даже 5.4.0 тоже не сработает. Когда я обновлялся до 5.6.2, он работал безупречно, несмотря на то, что в изменениях не было ничего важного!
В большинстве случаев это происходит, когда не вставляются правильные URL-адреса перенаправления OAuth в разделе продукта панели мониторинга FB. Я предлагаю следовать моим нижеследующим шагам
01. Проверьте, что базовая настройка приложения в порядке с изображением ниже.
02. проверьте, добавили ли вы продукт
Если нет, вы можете легко добавить продукт в систему, нажав + синус, как я покажу в нижеследующем.
Если "Да" просто попал внутрь настройки продукта.
03. Проверьте, имеется ли у вас действительный URL-адрес перенаправления OAuth
Его простой смысл, что должно после входа в систему. Это не что иное, как ваш обратный вызов URl. Вы можете видеть на моем следующем рисунке, я добавил несколько URL-адресов переадресации.
Недавно Facebook отключил кнопку переключения для " Использовать строгий режим для переадресации URI ", поэтому вам нужно добавить точный URI, который вызывается при нажатии кнопки входа. Для моего случая это было так, как показано на снимке экрана. Он решил проблему для меня :)
В случае, если это поможет кому-то еще, это началось для меня на более раннем сайте, когда "Действительные URI перенаправления OAuth" стали обязательными. Сайт по-прежнему использовал V4 PHP SDK, и проблема была решена для меня путем обновления до V5 SDK.
Этот параметр должен быть включен на портале:
Не удается загрузить URL-адрес: домен этого URL-адреса не включен в домены приложения. Чтобы загрузить этот URL-адрес, добавьте все домены и поддомены вашего приложения в поле "Домены приложений" в настройках вашего приложения.
Сегодня у меня был этот вопрос, я считаю, что документация по Facebook и SDK неуважительны и высокомерны по отношению к другим разработчикам.
Помимо наличия "доменов приложений" в двух разных местах без особой информации (3, если вы добавляете "веб-платформу"), вам также нужно перейти к приложениям/файлам приложений /facebook login/settings и добавить URL-адрес переадресации в соответствии с URI OUuth Redirect URI
Ошибка говорит НИЧЕГО о настройках oauth.
Это сработало для меня:
Здесь главное понять: Facebook всегда будет проверять домен WWW. Поэтому убедитесь, что в вашем браузере сначала работает www.your_domain.dev.
Возможно, что если на вашем локальном сервере несколько виртуальных хостов, другой виртуальный хост переопределяет " www.your_domain.dev". Поэтому, пожалуйста, проверьте это. Apache выберет ПЕРВОЕ определение домена (или портов, или что-то в этих терминах - я не эксперт по этому вопросу, но узнал по ошибкам). Легким быстрым решением для этого виртуального хоста является переопределение "виртуального хоста" www.your_domain.dev на самом верху файла "httpd-vhosts.conf".
Перейдите в "/apache/conf/https-vhosts.conf" и поместите это в самую верхнюю часть файла:
<VirtualHost *:80>
<Directory "C:/your_app_folder_path/">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
allow from All
</Directory>
ServerName your_domain.dev
ServerAlias your_domain.dev
DocumentRoot "C:/your_app_folder_path/"
</VirtualHost>
###### FOR SSL #####
<VirtualHost *:443>
DocumentRoot "C:/your_app_folder_path/"
ServerName your_domain.dev
ServerAlias www.your_domain.dev
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
<Directory "C:/your_app_folder_path/">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Далее: Если вы используете систему Windows, отредактируйте файл "hosts" в "C:\Windows\System32\drivers\etc", добавив две строки:
127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev
Далее: Перезагрузите сервер Apache, и теперь все должно работать.
Я надеюсь, что это поможет вам и сэкономит ваше время. Я потратил почти целый день на поиски в Интернете и вытаскивал свои волосы и не мог найти ничего полезного, пока не нашел это.
В разделе домена приложения вы пишете домен вашего приложения, но вам также необходимо добавить свой домен для входа в систему, то есть имя html-страницы, где вы просите пользователя войти в систему. В моем случае я тестировал его на локальном хосте, и логин-логин был localhost/login, если я помещал http://localhost.com в раздел домена приложения, Я получаю эту ошибку. Но после добавления http://localhost/login.com ошибка была исправлена. а также настройки приложения изменились в более новой версии SDK, в которой нет опции для перенаправления OAuth. Вы должны назначить маршрут перенаправления непосредственно со стороны сервера, после успешного получения токена OAuth.
Пробовал ответы здесь и получил сообщение "Извините, это не сработало", которое ничего не говорит вам?
Вы используете тестовое приложение?
Это работало для меня с сегодняшнего дня с https://localhost:5001
и с доменом через Cloudflare Argo с обратным прокси-туннелированием (а не с бесплатным сервисом).
У меня была та же проблема..... выпуск находится в версии PHP SDK 5.6.2, и исправление редактировало следующий файл:
facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php
изменить эту строку
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);
в
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);
В моем случае все, что мне нужно было сделать, это включить только встроенный браузер OAuth Login
первый шаг: используйте все URL-адрес https://example.in или ssl, не используйте http://example.in
второй шаг: приложение faceboook setting-> базовый setting-> добавить свой домен или поддомен
третий шаг: вход в систему faceboook login setting-> Действительный OAuth Redirect URIs-> добавить свой URL-адрес для перенаправления после входа в систему
четвертый шаг: приложение faceboook setting-> advance setting-> Домен Manager-> добавьте свое доменное имя
выполните весь этот шаг, затем используйте свой идентификатор приложения, версию приложения, секрет приложения для настройки
Facebook Login → Настройки → Действительные URI перенаправления OAuth → вставьте домены вашего URL перенаправления, помните, что вы должны добавить "https" или http. например: если ваш URL-адрес перенаправления https://xxx.xxx.com/path/callback.do, вам нужно только ввести https://xxx.xxx.com/, это нормально для меня.
Проблема и ответы продолжают меняться, поскольку FB подтягивает процедуру входа в систему. Сегодня я начал получать это сообщение ужаса "Домен этого URL-адреса не включен в домены приложений. Чтобы загрузить этот URL-адрес, добавьте все домены и поддомены вашего приложения в поле" Домены приложений "в настройках вашего приложения".
Ответ был: теперь FB хочет полностью перенаправить uri. Поэтому для меня, где раньше было только https://www.example.com, теперь он хочет https://www.example.com/auth/facebook/callback. Это должно быть указано в поле "Действительные URI перенаправления OAuth" (настройка разработчика /Facebook login->)
Использование моего локального сервера.
Просто добавьте http://localhost/my-site
в качестве URL-адреса в:
https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/
работал у меня.
Эта ошибка со мной произошла со мной в производственной среде. Причина состояла в том, что у меня было 2 приложения, зарегистрированные в Facebook (локальное, производство), но я жестко закодировал локальный идентификатор приложения в исходном коде и забыл его отключить для идентификатора приложения Production перед развертыванием.
Лучшая практика диктует, что вы не должны иметь идентификатор приложения, жестко закодированный в исходный код, но если вы это сделаете, не рассортируйте свои различные идентификаторы приложений Facebook, как я ошибочно сделал.
Большинство ответов связаны с добавлением URL-адреса в домен приложения, но при работе в компании у вас нет такого доступа. Для тех, кто может обходить это, просто создайте виртуальный хост и сделайте запись хоста.
добавить это в файл хоста (/etc/hosts) 127.0.0.1 www.your_domain.com
создать виртуальный хост. Я использовал это для виртуального хоста apache
ServerAdmin webmaster @localhost ServerName www.your_domain.com
ProxyPass / http://localhost:5006/
RewriteMap lc int:tolower
LogLevel debug