Pourquoi getSessionFromRedirect () renvoie-t-il une valeur NULL?
J'ai le code suivant qui redirige l'utilisateur de se connecter à facebook et tente de récupérer la session, mais la session est NULLE:
<?php
session_start();
require 'vendor/autoload.php';
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
FacebookSession::setDefaultApplication('Foo', 'Bar');
$helper = new FacebookRedirectLoginHelper('Baz');
$loginUrl = $helper->getLoginUrl();
echo '<a href="' . $loginUrl . '">Log In</a>';
$session = $helper->getSessionFromRedirect();
//This displays [NULL] always
echo '[' . gettype($session) . ']';
?>
Je ne comprends pas pourquoi le $session est toujours NULL. S'il vous plaît aider.
source d'informationauteur SBel
Vous devez vous connecter pour publier un commentaire.
Ici est la solution à utiliser même page FB page de redirection:
Ne pas appeler
getLoginUrl()
quand facebook vous rediriger vers la même page, il suffit d'ajouter la bonne session pour vérifier valide facebook session (Veuillez consulter l'exemple de code suivant)Vous devriez appeler getSessionFromRedirect uniquement sur la page Facebook redirige l'utilisateur après la connexion. Puis le stocker à la session de quelque part, comme $_SESSION, et de les réutiliser ailleurs.
La question est, quand vous générer l'url de connexion encore une fois, il change l'état de la variable utilisée pour protéger contre les CSRF.
Ok, donc le but était d'obtenir un
FacebookSession
. Il doit y avoir 2 pages: 1 pour afficher le Journal Dans le lien et les autres à accepter l'instance deFacebookSession
. Dans page1.php mettre:Dans page2.php mettre:
Grâce Fosco pour votre aide.
Vous pouvez le faire à la session de chargement, de connexion de redirection et de tous les appels de l'API à partir d'une seule page, si nécessaire. Ce didacticiel vous montre combien il peut être fait.
J'ai eu le même problème à tous les ci-dessus, et je l'ai fixée par
Regardez ces deux docs, ceux-ci vont vous aider à résoudre 🙂
https://developers.facebook.com/docs/php/gettingstarted
https://developers.facebook.com/docs/php/howto/profilewithgraphapi
Il y a un bug dans le FacebookRedirectLoginHelper.php ligne 214!
de changer le $_GET['etat'] par $_SESSION['etat'] de cette façon:
:
Ce qui fait la vraie différence pour moi a été l'Url de redirection de l'adresse que j'utilisais.
Des heures et des heures à cause d'une barre oblique.
Expliquer avec des exemples:
(Mauvais)
(À droite)
J'ai lu une tonne de tutoriels et réponses sur Stackoverflow et ce dernier slash a la vraie réponse. J'espère que cela aide quelqu'un