IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Facebook Connect] FacebookRedirectLoginHelper->getSessionFromRedirect() renvoie toujours "null"


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Front
    Inscrit en
    Décembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Front
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2013
    Messages : 59
    Points : 91
    Points
    91
    Par défaut [Facebook Connect] FacebookRedirectLoginHelper->getSessionFromRedirect() renvoie toujours "null"
    Salut à tous!

    Je suis en pleine implémentation d'un système de connexion via facebook sur mon site.

    Donc, déjà, voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
    	session_start();
     
    	$facebookConnect = "../../../include/php/fbconnect/";//Définition du chemin de l'API. J'ai trouvé que ça pour que ça daigne marcher
    require_once( $facebookConnect.'src/Facebook/FacebookSession.php' );
    require_once( $facebookConnect.'src/Facebook/FacebookRedirectLoginHelper.php' );
    require_once( $facebookConnect.'src/Facebook/FacebookRequest.php' );
    require_once( $facebookConnect.'src/Facebook/FacebookResponse.php' );
    require_once( $facebookConnect.'src/Facebook/FacebookSDKException.php' );
    require_once( $facebookConnect.'src/Facebook/FacebookRequestException.php' );
    require_once( $facebookConnect.'src/Facebook/FacebookAuthorizationException.php' );
    require_once( $facebookConnect.'src/Facebook/GraphObject.php' );
     
    use Facebook\FacebookSession;
    use Facebook\FacebookRedirectLoginHelper;
    use Facebook\FacebookRequest;
    use Facebook\FacebookResponse;
    use Facebook\FacebookSDKException;
    use Facebook\FacebookRequestException;
    use Facebook\FacebookAuthorizationException;
    use Facebook\GraphObject;
     
    	FacebookSession::setDefaultApplication('1529012227337421', 'my_secret_that_i_wont_give_you');
     
    	$helper = new FacebookRedirectLoginHelper($siteUrl.'/Content/answer.php?article='.$_GET['article']);//Redirige vers LA MÊME PAGE (plus pratique à gérer pour moi par la suite)
    	$loginUrl = $helper->getLoginUrl();
     
      $session = $helper->getSessionFromRedirect();
     
    // see if we have a session
    if ( isset( $session ) )
    {
      // graph api request for user data
      $request = new FacebookRequest( $session, 'GET', '/me' );
      $response = $request->execute();
      // get response
      $graphObject = $response->getGraphObject();
     
      // print data
      print_r( $graphObject);
    }
    else
    {
      // show login url
      echo '<a href="' . $helper->getLoginUrl() . '">Login</a>';
    }
    ?>
    Le problème, pour sûr, vient de la variable $session qui n'est jamais défini, càd que $helper->getSessionFromRedirect() ne retourne rien... Quelqu'un sait-il pourquoi?

    Par avance, merci beaucoup

    Nihilivin

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur Front
    Inscrit en
    Décembre 2013
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Front
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2013
    Messages : 59
    Points : 91
    Points
    91
    Par défaut
    J'ai résolu seul le problème, à force de recherches. Apparemment, l'appel à FacebookRedirectLoginHelper::getLoginUrl() modifie un attribut de l'objet qui le rend impropre à l'état "connecté". De plus, des inclusions manquaient. Voici le nouveau code, pour un appel et une redirection sur la même page.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    <?php
    	session_start();
     
    	$siteUrl = "http://proj0.gerkindevelopment.net";
    	print('<!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <link rel="stylesheet" href="Ressources/StyleStd.css" />
            <link rel="stylesheet" href="Ressources/StyleHeadFoot.css" />
            <title>Login</title>
        </head>
    	
    	<body>
    		<h1>Login test</h1>');
    	$facebookConnect = "../../../include/php/fbconnect/";
    	if(!file_exists($facebookConnect))
    		print("<p>Cannot find directory \"fbconnect\", operation aborted.</p>");
     
    require_once($facebookConnect.'src/Facebook/FacebookSession.php');
    require_once($facebookConnect.'src/Facebook/FacebookRedirectLoginHelper.php');
    require_once($facebookConnect.'src/Facebook/FacebookRequest.php');
    require_once($facebookConnect.'src/Facebook/FacebookResponse.php');
    require_once($facebookConnect.'src/Facebook/FacebookSDKException.php');
    require_once($facebookConnect.'src/Facebook/FacebookRequestException.php');
    require_once($facebookConnect.'src/Facebook/FacebookAuthorizationException.php');
    require_once($facebookConnect.'src/Facebook/GraphObject.php');
    require_once($facebookConnect.'src/Facebook/GraphUser.php');
    require_once($facebookConnect.'src/Facebook/GraphSessionInfo.php');
     
    require_once($facebookConnect.'src/Facebook/HttpClients/FacebookHttpable.php' );
    require_once($facebookConnect.'src/Facebook/HttpClients/FacebookCurl.php' );
    require_once($facebookConnect.'src/Facebook/HttpClients/FacebookCurlHttpClient.php' );
    require_once($facebookConnect.'src/Facebook/Entities/AccessToken.php' );
    require_once($facebookConnect.'src/Facebook/Entities/SignedRequest.php' );
     
    use Facebook\FacebookSession;
    use Facebook\FacebookRedirectLoginHelper;
    use Facebook\FacebookRequest;
    use Facebook\FacebookResponse;
    use Facebook\FacebookSDKException;
    use Facebook\FacebookRequestException;
    use Facebook\FacebookAuthorizationException;
    use Facebook\GraphObject;
    use Facebook\GraphUser;
    use Facebook\GraphSessionInfo;
     
    	FacebookSession::setDefaultApplication('1529012227337421', 'my_secret_that_i_wont_give_you');
     
    	$helper = new FacebookRedirectLoginHelper($siteUrl.'/Content/answer.php?article='.$_GET['article']);
     
    	try
    	{
    		$session = $helper->getSessionFromRedirect();
    	}
    	catch(FacebookRequestException $ex)
    	{
    		print('<p>FacebookRequestException: '.$ex->getErrorType().'</p>');
    	}
    	catch(Exception $ex)
    	{
    		print('<p>Exception: '.$ex->getMessage().'</p>');
    	}
     
    	if ($session)
    	{
    		print('<p>Logged</p>');
    	}
    	else
    	{
    	  header('Location:'.$helper->getLoginUrl());
    	  exit;
    	}
     
    	print('
    	</body>
    </html>');
    ?>
    J'espère que ça peut aider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. isdigit() renvoie toujours 0
    Par gangsoleil dans le forum C
    Réponses: 30
    Dernier message: 07/08/2006, 14h42
  2. [MySQL] Mon SELECT COUNT me renvoie toujours 1
    Par diaboloche dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 11/07/2006, 12h53
  3. Réponses: 2
    Dernier message: 16/04/2005, 21h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo