#docker #facebook-graph-api
#docker #facebook-graph-api
Вопрос:
Я работаю над веб-сайтом, использующим Laravel в контейнере Docker на локальном. Используемый веб-сервер — Nginx.
Я пытаюсь реализовать Graph API Facebook (PHP API) и, поскольку я разрабатываю на localhost и использую Docker, каждый раз, когда я хочу использовать API, я получаю:
Не удается загрузить URL-адрес: домен этого URL-адреса не включен в домены приложения. Чтобы иметь возможность загружать этот URL-адрес, добавьте все домены и поддомены вашего приложения в поле Домены приложений в настройках приложения.
Я попытался добавить домен, который я использую локально myapp.local:3000
, также <my ip>:3000
или localhost:3000
, но ничего не работает.
Вот код:
public function facebookRequest() {
$fb = new FacebookFacebook([
'app_id' => 'MY_APP_ID',
'app_secret' => 'MY_APP_SECRET',
'default_graph_version' => 'v8.0',
]);
$callback = 'users/get-facebook-photos';
$helper = $fb->getRedirectLoginHelper();
$permissions = ['user_photos'];
$data['fb_url'] = $helper->getLoginUrl($callback, $permissions);
$loginUrl = $helper->getLoginUrl(base_url().'/users/get-facebook-photos', $permissions);
echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
}
Что мне нужно сделать для разработки с использованием Graph API и Docker? Есть какая-то возможность обойти фильтр домена или что мне делать?
Комментарии:
1. вы пытались добавить localhost без порта в качестве домена?
2. @luschnn да, я сделал, но не сработал
Ответ №1:
Похоже, вы используете свое приложение для запроса токена с серверов Facebook, и когда токен будет создан, вы в конечном итоге будете перенаправлены в исходное место назначения. Местоположение перенаправления не может быть «localhost», это должно быть допустимое местоположение… как веб-сайт. Если вы хотите, чтобы это работало локально, вы можете отредактировать свой /etc/hosts
файл для сопоставления local.example.com
с 127.0.0.1
этим доменом и использовать его для перенаправлений в tests / QA, чтобы при перенаправлении вашего приложения оно пыталось выполнить его через localhost.
Другое предложение (найденное путем поиска точных, но более общих частей ошибки «Не удается загрузить URL: домен этого URL-адреса не включен в домены приложения») предлагает:
добавить «https://apps.facebook.com /» в допустимых URI перенаправления OAuth в https://developers.facebook.com/apps/your-app-id/fb-login/settings /
Ответ №2:
Ну, наконец-то получил решение (не то, которое я хотел). Я использовал пользовательский домен, определенный в моем файле хоста. Это не сработало для Facebook. Мне нужно было использовать localhost (даже не 127.0.0.1) и внести localhost в белый список разработчиков Facebook.
Итак, если у вас есть эта проблема, вы можете сделать этот обходной путь и использовать localhost вместо пользовательского домена. Тем не менее, моим идеальным решением было бы использование пользовательских доменов.