Подтвердить что ты не робот

Facebook OAuth "Домен этого URL-адреса не включен в домен приложения"

Позвольте мне сначала начать с того, что я искал ответ на этот вопрос в течение некоторого времени...

Я пытаюсь настроить Facebook OAuth для работы с моим приложением, которое разрабатывается локально на моей машине. Все отлично работало с авторизацией в Facebook. Я перешел от использования localhost к другому доменному имени (по-прежнему локально к моей машине.) Теперь я получаю следующую ошибку.

Невозможно загрузить URL-адрес: домен этого URL-адреса не включен в приложение. домены. Чтобы загрузить этот URL-адрес, добавьте все домены и поддомены вашего приложения в поле "Домены приложений" в настройках вашего приложения.

Мой файл hosts содержит 127.0.0.1 photovote.dev (отлично работает)

Мое перенаправление в моем приложении (используя Socialite) - http://photovote.dev/auth/facebook/callback

В моих настройках приложения Facebook...

  • Мой домен приложения photovote.dev
  • мой URL-адрес сайта http://photovote.dev/
  • Мои действительные URI перенаправления OAuth http://photovote.dev/auth/facebook/callback

URL-адрес во время сообщения об ошибке:

https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fphotovote.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_type=code&state=0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD

Я в недоумении, что проблема...

Экранный снимок 1
Screen Shot

Экранный снимок 2 введите описание изображения здесь

4b9b3361

Ответ 1

Это обычно происходит, если вы ввели неправильные данные при создании приложения в Facebook. Или вы изменили URL-адрес существующего приложения?

Можете ли вы перепроверить настройки своего APP на этой странице?

https://developers.facebook.com/apps

  • Выберите правильное приложение и нажмите кнопку редактирования;

  • Проверьте правильность ввода URL-адресов и путей и указывайте на сайт, на котором установлен плагин Ultimate Facebook.

Ответ 2

Если кто-то сталкивается с этим и ищет эти настройки (например, я был)

Вы должны

  • В левой части нажмите "+ Добавить продукт" и выберите "Facebook Login" (он был в верх для меня)
  • См. новые настройки, доступные с левой стороны.
  • Теперь у вас будут настройки OAuth на "Параметры продукта"

enter image description here

Дополнительная информация: Обязательно добавьте URL-адрес обратного вызова, например http://localhost:3000, в поле Valid OAuth redirect URIs на странице настроек входа в Facebook

Ответ 3

У меня была та же проблема. Я решил это, добавив мой URI перенаправления OAuth в качестве аргумента для вызова функции getAccessToken:

$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")

Если в эту функцию не передается аргумент, SDK сам генерирует URI-редиректа, который должен работать, но в моем случае это не так.

Надеюсь, это поможет кому-то.

Ответ 4

Убедитесь, что ваше приложение является общедоступным. Нажмите + Добавить продукт Теперь перейдите к продуктам = > Facebook Войти Теперь сделайте следующее:

Действительные URI перенаправления OAuth: example.com/

Деактивировать URL-адрес обратного вызова: https://example.com/facebookapp http://unicodeitsolutions.com/

Ответ 5

Вот что я сделал для решения этой проблемы: enter image description here

В принципе:

1) Включить " Встроенный браузер OAuth Login "

2) Отключите " Использовать строгий режим для перенаправления URI " и введите URI перенаправления, как и я.

3) Оставьте все остальные варианты, как есть.

4) Сохраните изменения.

5) Наслаждайтесь :)

Ответ 6

У меня была та же проблема, и она исходила из неправильного идентификатора приложения client_id/Facebook.

Вы переключили свое приложение Facebook на "общедоступный" или "онлайн"? Когда вы это сделаете, Facebook создает новое приложение с новым идентификатором приложения.

Вы можете сравнить значение параметра "client_id" в URL-адресе с таковым на панели управления Facebook.

Ответ 7

Как я ее исправил: я перешел в текстовое поле Valid UA Redirect URI и установил точный URL-адрес, а не только домен:

до: https://my-website.com

после: https://my-website.com/facebookoauth/facebooklogin

(URL-адрес может быть другим в вашем случае, проверьте его в адресной строке браузера).

Это было вызвано установкой Использовать строгий режим для URI переадресации, который был заблокирован в позиции "Да".

Ответ 8

Нажмите здесь Code Project ! Пример его кода. Его работа со мной

enter image description here

Ответ 9

У меня была та же проблема,

Я только что добавил ссылку моего локального адреса http://localhost/Facebook%20Login%20Test.html на Site URL в настройках моего приложения https://developers.facebook.com/apps.

Теперь он отлично работает:) Я надеюсь, что это было полезно;)

Ответ 10

По состоянию на 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, например.

Ответ 11

В большинстве случаев это происходит, когда не вставляются правильные URL-адреса перенаправления OAuth в разделе продукта панели мониторинга FB. Я предлагаю следовать моим нижеследующим шагам

01. Проверьте, что базовая настройка приложения в порядке с изображением ниже.

enter image description here

02. проверьте, добавили ли вы продукт

Если нет, вы можете легко добавить продукт в систему, нажав + синус, как я покажу в нижеследующем.

Если "Да" просто попал внутрь настройки продукта. enter image description here

03. Проверьте, имеется ли у вас действительный URL-адрес перенаправления OAuth

Его простой смысл, что должно после входа в систему. Это не что иное, как ваш обратный вызов URl. Вы можете видеть на моем следующем рисунке, я добавил несколько URL-адресов переадресации. enter image description here

  1. есть какие-либо проблемы далее Смотрите мой video--> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s

Ответ 12

Для меня ничего не работало, пока я не обновил версию SDK, которую я использовал. Я начал с 5.0. Даже 5.4.0 тоже не сработает. Когда я обновлялся до 5.6.2, он работал безупречно, несмотря на то, что в изменениях не было ничего важного!

Ответ 13

Этот параметр должен быть включен на портале:

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

Ответ 14

В случае, если это поможет кому-то еще, это началось для меня на более раннем сайте, когда "Действительные URI перенаправления OAuth" стали обязательными. Сайт по-прежнему использовал V4 PHP SDK, и проблема была решена для меня путем обновления до V5 SDK.

Ответ 15

Недавно Facebook отключил кнопку переключения для " Использовать строгий режим для переадресации URI ", поэтому вам нужно добавить точный URI, который вызывается при нажатии кнопки входа. Для моего случая это было так, как показано на снимке экрана. Он решил проблему для меня :)

enter image description here

Ответ 16

В разделе домена приложения вы пишете домен вашего приложения, но вам также необходимо добавить свой домен для входа в систему, то есть имя html-страницы, где вы просите пользователя войти в систему. В моем случае я тестировал его на локальном хосте, и логин-логин был localhost/login, если я помещал http://localhost.com в раздел домена приложения, Я получаю эту ошибку. Но после добавления http://localhost/login.com ошибка была исправлена. а также настройки приложения изменились в более новой версии SDK, в которой нет опции для перенаправления OAuth. Вы должны назначить маршрут перенаправления непосредственно со стороны сервера, после успешного получения токена OAuth.

Ответ 17

Это сработало для меня:

Здесь главное понять: 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, и теперь все должно работать.


Я надеюсь, что это поможет вам и сэкономит ваше время. Я потратил почти целый день на поиски в Интернете и вытаскивал свои волосы и не мог найти ничего полезного, пока не нашел это.

Ответ 18

Не удается загрузить URL-адрес: домен этого URL-адреса не включен в домены приложения. Чтобы загрузить этот URL-адрес, добавьте все домены и поддомены вашего приложения в поле "Домены приложений" в настройках вашего приложения.

Сегодня у меня был этот вопрос, я считаю, что документация по Facebook и SDK неуважительны и высокомерны по отношению к другим разработчикам.

Помимо наличия "доменов приложений" в двух разных местах без особой информации (3, если вы добавляете "веб-платформу"), вам также нужно перейти к приложениям/файлам приложений /facebook login/settings и добавить URL-адрес переадресации в соответствии с URI OUuth Redirect URI

Ошибка говорит НИЧЕГО о настройках oauth.

Ответ 19

Эта ошибка со мной произошла со мной в производственной среде. Причина состояла в том, что у меня было 2 приложения, зарегистрированные в Facebook (локальное, производство), но я жестко закодировал локальный идентификатор приложения в исходном коде и забыл его отключить для идентификатора приложения Production перед развертыванием.

Лучшая практика диктует, что вы не должны иметь идентификатор приложения, жестко закодированный в исходный код, но если вы это сделаете, не рассортируйте свои различные идентификаторы приложений Facebook, как я ошибочно сделал.

Ответ 20

Использование моего локального сервера.

Просто добавьте http://localhost/my-site в качестве URL-адреса в:

https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/

работал у меня.

Ответ 21

Проблема и ответы продолжают меняться, поскольку FB подтягивает процедуру входа в систему. Сегодня я начал получать это сообщение ужаса "Домен этого URL-адреса не включен в домены приложений. Чтобы загрузить этот URL-адрес, добавьте все домены и поддомены вашего приложения в поле" Домены приложений "в настройках вашего приложения".

Ответ был: теперь FB хочет полностью перенаправить uri. Поэтому для меня, где раньше было только https://www.example.com, теперь он хочет https://www.example.com/auth/facebook/callback. Это должно быть указано в поле "Действительные URI перенаправления OAuth" (настройка разработчика /Facebook login->)

Ответ 22

Facebook Login → Настройки → Действительные URI перенаправления OAuth → вставьте домены вашего URL перенаправления, помните, что вы должны добавить "https" или http. например: если ваш URL-адрес перенаправления https://xxx.xxx.com/path/callback.do, вам нужно только ввести https://xxx.xxx.com/, это нормально для меня.

Ответ 23

первый шаг: используйте все URL-адрес https://example.in или ssl, не используйте http://example.in

второй шаг: приложение faceboook setting-> базовый setting-> добавить свой домен или поддомен

третий шаг: вход в систему faceboook login setting-> Действительный OAuth Redirect URIs-> добавить свой URL-адрес для перенаправления после входа в систему

четвертый шаг: приложение faceboook setting-> advance setting-> Домен Manager-> добавьте свое доменное имя

выполните весь этот шаг, затем используйте свой идентификатор приложения, версию приложения, секрет приложения для настройки

Ответ 24

В моем случае все, что мне нужно было сделать, это включить только встроенный браузер OAuth Login

enter image description here

Ответ 25

У меня была та же проблема..... выпуск находится в версии 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']);

Ответ 26

Пробовал ответы здесь и получил сообщение "Извините, это не сработало", которое ничего не говорит вам?

Вы используете тестовое приложение?

  • Затем вам нужно создать тестового пользователя (внутри вашего приложения есть вкладка для "Test Users")
  • Да. Вы должны выйти из своей обычной учетной записи FB (или переключиться на другой режим браузера/инкогнито)
  • Войдите в систему с помощью тестового пользователя. Это работает с кнопкой входа в Facebook.

Это работало для меня с сегодняшнего дня с https://localhost:5001 и с доменом через Cloudflare Argo с обратным прокси-туннелированием (а не с бесплатным сервисом).

Ответ 27

Большинство ответов связаны с добавлением 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