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
Réponse acceptée

Dans l'url je veux dire en retour

SirPixel
Auteur
Réponse acceptée

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.

Tu obtiens bien le token en retour du login Facebook ?

SirPixel
Auteur

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