$facebook->getSessionFromRedirect() return null

Par SirPixel, il y a 11 ans


Bonjour tous monde,

j'ai un problème avec facebook connect sa fais 2 jour que je test plein de methode différente sans succés donc je me tourne vers vous.
j'obtien en permanence null quand je debug

<?php $session = $facebook->getSessionFromRedirect(); ?>

j'affiche un lien facebook connect sur toutes mes pages donc pour charger le lien partout j'ai mis dans

AppController.php

<?php public function beforeFilter(){ parent::beforeFilter(); require APPLIBS.'Facebook'.DS.'autoload.php'; FacebookSession::setDefaultApplication("XXXX", "XXXX"); $redirect_url = 'http://mon-domaine.fr/users/facebook'; $facebook = new FacebookRedirectLoginHelper($redirect_url, $appId = NULL, $appSecret = NULL); $loginUrl = $facebook->getReRequestUrl(['email']); $this->set('linkFacebook', $loginUrl); } ?>

et pour le traitement

UsersController.php

<?php FacebookSession::setDefaultApplication("XXXXX", "XXXXX"); $redirect_url = 'http://mon-domaine.fr/users/facebook'; $facebook = new FacebookRedirectLoginHelper($redirect_url); try { $session = $facebook->getSessionFromRedirect(); } catch(FacebookRequestException $ex) { } catch(\Exception $ex) { } if ($session) { // Logged in } ?>

default.ctp

<a href="<?= $this->Html->url($linkFacebook); ?>" class="btn btn-success">Facebook</a>

c'est rien de plus qu'un banal copié coller de la page https://developers.facebook.com/docs/php/FacebookRedirectLoginHelper/4.0.0

J'ai essayé aussi avec le code de grafikart qui me ramenène au même points.

Je suis sur que l'erreur doit être bêtemais je ne la trouve pas.
pouvez-vous m'aider s'il vous plaie.

Merci d'avance.

4 réponses

Grafikart, il y a 11 ans

Tu obtiens bien le token en retour du login Facebook ?

SirPixel, il y a 11 ans

merci pour ton aide
justement je n'arrive pas le récupérer. $facebook->getSessionFromRedirect() renvoit null et $facebook renvoi

object(Facebook\FacebookRedirectLoginHelper) { [protected] state => null [protected] checkForSessionStatus => true [private] appId => '***********' [private] appSecret => '***********' [private] redirectUrl => 'http://mon-domaine.fr/users/facebook' [private] sessionPrefix => 'FBRLH_' }

j'ai essayé de vider mon cache et mes sessions dans le doute mais sa ne change rien.

Je viens de test pour voir si sa changer quelque chose mais non

<?php FacebookSession::setDefaultApplication("appId", "appSecret"); $redirect_url = 'http://mon-domaine.fr/users/facebook'; $facebook = new FacebookRedirectLoginHelper($redirect_url); debug($facebook); debug($facebook->getSessionFromRedirect()); $loginUrl = $facebook->getReRequestUrl(['email']); $this->set('linkFacebook', $loginUrl); //debug($loginUrl); ?>

j'ai essayé de refaire votre tuto également sa fonctionne dans l'appController mais des que je veux passer par ma usersController j'obtiens la même erreur(un retour null au nivo du token).

Je ne connais pas bien l'histoire des composer donc je n'ais pas utilisé j'ai import le php-sdk-v4 dans le dossier Lib comme cela avais été fais dans le premier tuto avec cakePhp.
J'ai tout de même installer le composer sur mon serveur dans le doute. mais je pense pas que cela change quelque chose

Grafikart, il y a 11 ans

Dans l'url je veux dire en retour

SirPixel, il y a 11 ans

Merci de ton aide.
J'ai fini par télécharger tes sources.
enssuite j'ai tout coller dans appController.
Je revoie le profil en session sur mon usersController.
sa fais moche mais sa fonctionne j'essaierais de ranger sa une autre fois.
maintenant jevais m'attaquer a google qui ne m'a pas l'aire plus simple.
encore merci.