it-swarm.com.ru

Facebook OAuth "Домен этого URL не входит в домен приложения"

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

Я пытаюсь настроить OAuth Facebook для работы с моим приложением, которое разрабатывается локально на моей машине. Все работало отлично с авторизацией на 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 enter image description here

194
dangel

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

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

https://developers.facebook.com/apps

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

  2. Убедитесь, что URL-адреса и пути введены правильно и указывают на сайт, где вы установили плагин Ultimate для Facebook.

60
Lei Lionel

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

Ты должен 

  1. С левой стороны, нажмите «+ Добавить продукт» и выберите «Facebook Login» (это было на Для меня)
  2. Смотрите новые настройки, доступные на левой стороне
  3. Теперь у вас будут эти настройки OAuth в разделе «Настройки продукта»

enter image description here

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

187
Craig Lambie

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

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

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

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

45
Swoot

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

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

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

30
Sanjoy Kanrar

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

В принципе: 

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

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

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

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

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

18
bangbang

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

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

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

7
guillaume.deslandes

Способ, которым я это исправил: я пошел в текстовое поле Valid OAuth Redirect URIs и установил точный URL, не только домен

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

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

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

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

6
Cosmin

Нажмите здесь Code Project ! Пример проекта Code. Это работает для меня

 enter image description here

5
Ambala Chandrashekar

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

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

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

4
iteb khayati

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

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

 enter image description here

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

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

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

03 .Проверка правильности URL-адреса перенаправления OAuth

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

  1. возникли проблемы. Смотрите мое видео--> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s
4
Rumesh Madushanka

По состоянию на 2017-10 гг. 

Решение, которое решило мою проблему.

В настоящее время этот FB преподносит этот сюрприз.

Настройки OAuth клиента ...приложения. Убедитесь, что Client и Web OAuth Login включены ...

 enter image description here

Настройки для настройки находятся здесь https://developers.facebook.com/apps/[your_app_itentifier]/fb-login/ .

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

{
    callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}

и здесь

 enter image description here

Чтобы получить любое доменное имя для приложения на локальном компьютере с 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

Создайте резервную копию исходного файла, создайте копию с другим именем (не работает в родном CMD Windows. Я использую 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.

4
Green

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

3
Ste_95

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

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

Помимо того, что «домены приложений» расположены в двух разных местах без особой информации (3, если вы добавляете «веб-платформу»), вам также необходимо перейти к app products/facebook login/settings и добавить свой URL перенаправления в Действительные URI перенаправления OAuth

Ошибка ничего не говорит о настройках oauth.

2
adrianTNT

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

2
Kenneth Spencer

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

 enter image description here

2
Bhaskar Choudhary

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

 enter image description here

2
Daniel Krzyczkowski

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

1
Anum Sheraz

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

1
Chevelle

В моем случае мне нужно было только включить Вход OAuth для встроенного браузера

 enter image description here

1
sh6210

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

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


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

1
Albo Best

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

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

0
Jimmy Shaw

Используя мой собственный локальный сервер.

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

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

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

0
Reece Kenney

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

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

третий шаг: настройки входа в приложение faceboook-> допустимые URI перенаправления OAuth-> добавить URL-адрес всех перенаправлений после входа в систему

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

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

0
ganesh avhad

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

Ответ был: теперь FB хочет полный URI перенаправления. Так что для меня, где это было просто https://www.example.com теперь он хочет https://www.example.com/auth/facebook/callback . Это должно идти в поле «Действительные URI перенаправления OAuth» (Developer/Facebook login-> setting)

0
Peter Robinson

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

0
刘同彬