J'aimerais ajouter l'option de connexion à Facebook à mon site web. ce tutoriel . J'ai tout fait comme dans le tutoriel, mais j'obtiens toujours cette erreur :
OAuthException: redirect_uri isn't an absolute URI
Comment peut-on résoudre ce problème ?
Ces urls sont générées par la fonction facebookOAuthProvider
. Le site web n'est pas sur localhost. Il fonctionne sur un serveur web, avec https.
Voici le code correspondant :
// redirect to Facebook
$facebookOAuthProvider = $this->get('app.facebook_provider');
$url = $facebookOAuthProvider->getAuthorizationUrl([
// these are actually the default scopes
'scopes' => ['public_profile', 'email'],
]);
return $this->redirect($url);
Il redirige vers cette url :
https://www.facebook.com/v2.3/dialog/oauth?scopes[0]=public_profile&scopes[1]=email&state=...&scope=public_profile,email&response_type=code&approval_prompt=auto&redirect_uri=/connect/facebook-check&client_id=...
En redirect_uri
n'est en effet pas une url absolue. Mais comment est-il possible d'y remédier ?
Editer
Si j'ajoute 'redirect_uri' => [$redir]
l'url ressemble alors à ceci :
https://www.facebook.com/v2.3/dialog/oauth?scopes%5B0%5D=public_profile&scopes%5B1%5D=email&scopes%5B2%5D=user_location&redirect_uri%5B0%5D=https%3A%2F%2Fexample.com%2Fconnect%2Ffacebook-check&state=...&scope=public_profile%2Cemail&response_type=code&approval_prompt=auto&client_id=...
Je peux voir l'absolue redirect_uri
dans l'url générée, mais j'obtiens toujours cette erreur, si je navigue vers elle
Le redir est défini comme suit :
$redir = $this->generateUrl('connect_facebook_check', array(), UrlGeneratorInterface::ABSOLUTE_URL);
Edit2
Si je remplace [$redir]
con $redir
puis facebook me redirige correctement vers /connect/facebook-check
avec un code, mais j'obtiens un OAuthException: redirect_uri isn't an absolute URI. Check RFC 3986
là.