Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: FB SDK PHP
Forum PHP.pl > Forum > PHP
Gothicbezimienny
Witam mam oto problem oto kod lecz niestety w $session zawsze zwraca mi NULL. Gdy klikam logowanie normalnie loguje się do fb po udanym przekierowuje mnie na moja stronę lecz nadal jest opcja zaloguj, a ze juz jestem zalogowany ponowne próby użycia przycisku zaloguj nic nie dają. Problem ofc jest z tym ze w $session ciągle jest NULL ale dlaczego i jak to rozwiązać może ktoś doradzić ?
  1.  
  2. FacebookSession::setDefaultApplication(APP_ID,APP_SECRET);
  3.  
  4. $helper = new FacebookRedirectLoginHelper(REDIRECT_URL);
  5.  
  6.  
  7. try {
  8. $session = $helper->getSessionFromRedirect();
  9. } catch(FacebookRequestException $ex) {
  10. // When Facebook returns an error
  11. } catch(\Exception $ex) {
  12. // When validation fails or other local issues
  13. }
  14. var_dump($session);
  15.  
  16.  
  17. if($session){
  18.  
  19.  
  20.  
  21. $session = new FacebookSession($_SESSION['facebook']);
  22.  
  23. $request = new FacebookRequest($session, 'GET', '/me');
  24. $response = $request->execute();
  25. $graphObjectClass = $response->getGraphObject(GraphUser::className());
  26.  
  27.  
  28. $fb = $graphObjectClass;
  29. $name = $fb->getName();
  30. $logout = $helper->getLogoutUrl();
  31.  
  32. $_SESSION['user_login_data']= $name;
  33. $xtpl->assign('name',$name);
  34. $xtpl->assign('logout',$logout);
  35.  
  36. $xtpl->parse('main.fbX');
  37.  
  38.  
  39. }else{
  40.  
  41. $login = $helper->getLoginUrl();
  42.  
  43.  
  44. $xtpl->assign('login',$login);
  45.  
  46. $xtpl->parse('main.fb');
  47. }
freemp3
1. Nie zapisujesz sobie sesji Facebooka w sesji PHP
2. Klasa FacebookSession przyjmuje jako parametr access token oraz opcjonalnie signed request, a nie własną instancję wink.gif
Jak już zapiszesz sesję facebooka w sesji php to możesz się do niej bezpośrednio odwoływać, bez konieczności tworzenia jej na nowo przy każdym przeładowaniu strony.
Gothicbezimienny
Akurat tą linijkę : $session = new FacebookSession($_SESSION['facebook']); można wywalić pozostałość po wielu wielu zmianach i próbach.

Główny problem tkwi w tym że :

$session = $helper->getSessionFromRedirect(); cały czas zwraca Null i wykonuje się automatycznie cały czas else z if'a.

else{

$login = $helper->getLoginUrl();


$xtpl->assign('login',$login);

$xtpl->parse('main.fb');
}
freemp3
Zamiast pobierać sesję z przekierowania spróbuj w ten sposób:

  1. $signedRequest = new \Facebook\Entities\SignedRequest($_POST['signed_request']);
  2. if($signedRequest->get('oauth_token'))
  3. {
  4. $session = \Facebook\FacebookSession::newSessionFromSignedRequest($signedRequest);
  5. }
  6. else
  7. {
  8. //przekierowanie na formularz logowania
  9. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.