it-swarm.com.ru

Приложение Facebook - домен этого URL не включен в домены приложения. Зачем?

При попытке войти в приложение Facebook я получаю следующую ошибку:

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

Как вы можете видеть на следующем изображении:

enter image description here

URL: http://www.facebook-php-test.com

Ниже приведена конфигурация, которую я установил в своем приложении Facebook.

(Примечание: в целях конфиденциальности я изменил значения App ID и App Secret на изображении)

enter image description here

Код этого базового примера приложения находится в этом репозитории GitHub:

https://github.com/zeuscronos/facebook-php-test.com

Я действительно не знаю, почему он говорит, что the domain of this URL isn't included in the app's domains, когда он на самом деле там.

На поле: App Domains Я пытался с обоими доменами одновременно:

  • facebook-php-test.com
  • www.facebook-php-test.com

но безуспешно.

Сгенерированный URL для входа в систему выглядит следующим образом:

https://www.facebook.com/v2.10/dialog/oauth?client_id=012345678901234&state=d3758e484d539bebd6505427aaf1fa3b&response_type=code&sdk=php-sdk-5.6.1&redirect_uri=h2p.dll. com% 2Ffb-callback.php & scope = email% 2Cuser_friends% 2Cuser_photos

Я настроил домен: facebook-php-test.com как виртуальный хост на сервере Apache.

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

Я перепробовал много вещей без успеха.

Есть идеи, как это решить?

Благодарю.

Правка 01

Следуя предложению комментария Mr.Geeker, я сделал следующее ...

Добавил продукт: Facebook Login и настроил как показано ниже:

 enter image description here

Затем, наконец, я мог идти вперед, и меня попросили разрешения:

 enter image description here

Но, к сожалению, после предоставления разрешений я получил следующее:

 enter image description here

Любая идея о том, как продолжить с этого момента?

РЕДАКТИРОВАТЬ 02 - РЕШЕНИЕ

Я прекратил отключать опцию: Use Strict Mode for Redirect URIs под Client OAuth Settings. Они говорят, что это strongly recommended имеет эту функцию On, но я не мог заставить это работать с этим On.

Кстати, я также отключил: Client OAuth Login, так как мое приложение не использует его.

Наконец, единственная функция, которую я включил в: Client OAuth Settings, это: Web OAuth Login.

4
Angel
Facebook теперь использует некоторые функции в качестве плагинов. В левой части выберите Продукты и добавьте продукт. Затем выберите Вход в систему. Довольно прямо оттуда вы увидите все варианты Oauth.

Как первоначально ответили здесь

2
Mr.Geeker

В марте 2018 года Facebook обновил API и принудительно включил все приложения в строгом режиме.

Чтобы это работало, вы должны включить полный URL-адрес обратного вызова в поле Valid OAuth Redirect URIs. Если вы перенаправляете на « https://www.example.com/facebook/callback », необходимо включить полный URI (без параметров):

 enter image description here

Домен должен быть установлен в доменах приложения и в полях URL сайта сайта на странице основных настроек:

 enter image description here

Если ничего из этого не работает, и «Невозможно загрузить URL: домен этого URL не включен в домены приложения». сообщение продолжает отображаться, проверьте, установлена ​​ли у вас последняя версия SDK. Я мог бы заставить его работать после обновления de PHP SDK с версии 5.5 до 5.6.2

2
Jorge Palacio

Я использую PHP 5.5, и я нашел ошибку.

PHP Facebook API VERSION = '5.5.0', DEFAULT_GRAPH_VERSION = 'v2.9' добавлял URI? Code = XXX на мою страницу обратного вызова следующим образом:

mydomainExample.com/callbackFacebook.php? code = XXXXXXX

и я изменил исходный код, чтобы удалить строку после '?'. Теперь URL-адрес обратного вызова 

mydomainExample.com/callbackFacebook.php

Исправить это можно в файле Facebook/Helpers/ FacebookRedirectLoginHelper.php внутри getAccessToken . Я добавил ' if ', как показано ниже в строке 226, и проблема исчезла:

$redirectUrl = $redirectUrl ?: $this->urlDetectionHandler->getCurrentUrl();

//the next 3 lines was added to avoid the bug (fixed)
if(strripos($redirectUrl, "?")){
  $redirectUrl = substr($redirectUrl, 0, strripos($redirectUrl, "?"));
}

// At minimum we need to remove the state param
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl, ['state']);
0
ferreirabraga