Witam, dalej walczę z logowaniem przez fb, tylko teraz problem zupełnie inny..

mam 2 funkcje - jedna to jest ta, którą udostępnia API fb, druga to moja, która jest odpowiedzialna za dodawanie do bazy i tworzenie sesji, problem chyba jest taki, że zmienna $user jest pusta, bo jak dam return var_dump($user) i pozniej ją w widoku wyswietle to nic się nie wyświetla.. i nie wiem co jest grane..


  1. // logowanie przez FB
  2.  
  3. public function get_facebook_cookie($app_id, $app_secret) {
  4. $args = array();
  5. parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
  6. ksort($args);
  7. $payload = '';
  8. foreach ($args as $key => $value) {
  9. if ($key != 'sig') {
  10. $payload .= $key . '=' . $value;
  11. }
  12. }
  13. if (md5($payload . $app_secret) != $args['sig']) {
  14. return null;
  15. }
  16. return $args;
  17. }
  18.  
  19. // logowanie przez FB cz. 2
  20.  
  21. public function fb_login() {
  22. $cookie = $this->get_facebook_cookie('x','x');
  23. $user = json_decode(file_get_contents('https://graph.facebook.com/me?access_token=' .$cookie['access_token']));
  24. if ($user) {
  25. if ($this->checkIfEmailRegistered($user['email'])) {
  26. $ident = $this->createNewIdent(20);
  27. $this->sqlInsert(SQLTABLE_USERS , "null,'facebook','fb_pass','".$user[email]."','".$user[first_name]."','".$user[last_name]."','TRUE',NOW(),'".$ident."','USER'");
  28. }
  29. $_SESSION['logged_user'] = $this->sqlRow("*" , SQLTABLE_USERS , "WHERE email='".$user[email]."' AND type='USER'");
  30. return true;
  31. } else {
  32. return false;
  33. }
  34. }
  35.  
  36.  
  37.  
  38.  
  39. // i później:
  40.  
  41.  
  42. case "fblogin":
  43. $kernel->schema("content");
  44. $kernel->template("users/fblogin.smarty");
  45. $kernel->setModule("users");
  46.  
  47. if($user->fb_login()) {
  48. $kernel->redirect(APP_URL . "ogloszenia/lista.html");
  49. }


wie ktoś czemu tak się może dziać? do bazy też nic nie dodaje, krótko mówiąc zmienna $jest pusta i przy warunku sprawdzajacym czy zmienna jest pusta zwraca od razu false i dupa..

chyba, że w linku za mało informacji pobieram?


  1. <a href="https://www.facebook.com/dialog/oauth?client_id=x&redirect_uri=http://mojastrona.pl/users/fblogin.html&scope=email">Zaloguj przez FB</a>
  2.  
  3.  


z tego co się dowiedziałem, to chyba funkcja pobierajaca dane jest do niczego (ta pierwsza) ma ktoś może jakiś działający kod pobierający dane z fb?