web-dev-qa-db-fra.com

Facebook: Vous n'êtes pas connecté: Vous n'êtes pas connecté. Veuillez vous connecter et réessayer

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>";
    }
10
scriptkiddie

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

18
scriptkiddie

Vous devez configurer les autorisations sur les URL souhaitées dans les sections suivantes de l'API:

  • Produits -> Connexions Facebook -> Configurations -> OAuth URi's
  • Sous Configurations> De base, définissez l'URL de votre site.
  • Sur Configurations> Avancé, définissez une liste d'URI autorisés pour la redirection de partage
2
Fernando Wolff

Si vous envisagez de tester l'application dans un environnement intermédiaire, laissez le champ. Store.

0
Marcos Curvello

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

0
Kakashi