le code génère une erreur
$helper = $fb->getRedirectLoginHelper();
$loginUrl = $helper->getLoginUrl("https://apps.facebook.com/{$appname}/", $permissions);
echo "<script>window.top.location.href='".$loginUrl."'</script>";
Erreur
Vous n'êtes pas connecté: Vous n'êtes pas connecté. Veuillez vous connecter et réessayer.
l'url qui génère l'erreur est (a remplacé mon appname par appname):
https://www.facebook.com/v2.7/dialog/oauth?client_id=8651003434372244 2F & scope = email
script complet
<?php
require_once '../../Facebook/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => "$appid",
'app_secret' => "$appsecret",
'default_graph_version' => 'v2.7',
]);
$helper = $fb->getCanvasHelper();
$permissions = ['email']; // optionnal
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
if (isset($accessToken)) {
$accessToken = (string) $accessToken;
$fb->setDefaultAccessToken($accessToken);
if (isset($_GET['code'])) {
header('Location: ./');
}
// validating the access token
try {
$request = $fb->get('/me');
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
if ($e->getCode() == 190) {
$helper = $fb->getRedirectLoginHelper();
$loginUrl = $helper->getLoginUrl("https://apps.facebook.com/{$appname}/", $permissions);
echo "<script>window.top.location.href='".$loginUrl."'</script>";
exit;
}
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
// getting basic info about user
try {
$profile_request = $fb->get('/me?fields=name,first_name,last_name,email');
$user_profile = $profile_request->getGraphNode()->asArray();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
$url = "https://apps.facebook.com/{$appname}/";
echo '<script>window.top.location.href='.$url.'</script>';
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
// priting basic info about user on the screen
//print_r($user_profile);
// Now you can redirect to another page and use the access token from $_SESSION['facebook_access_token']
} else {
$helper = $fb->getRedirectLoginHelper();
$loginUrl = $helper->getLoginUrl("https://apps.facebook.com/{$appname}/", $permissions);
echo "<script>window.top.location.href='".$loginUrl."'</script>";
}
Cette erreur a été générée car je n'ai pas ajouté l'URL de la toile de mon application (exemple https://apps.facebook.com/appname/ ) dans
Connexion Facebook -> Paramètres sous URI de redirection OAuth valides
Vous devez configurer les autorisations sur les URL souhaitées dans les sections suivantes de l'API:
Si vous envisagez de tester l'application dans un environnement intermédiaire, laissez le champ. Store.
J'ai la même alerte lorsque j'essaie de tester le login sur facebook avec localhost. Ensuite, j'ajoute http: // localhost: 3000 aux URI de redirection OAuth valides et je tente de nouveau le test. Cela a fonctionné pour moi. Merci @Harkirat Saluja