Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony2][Facebook SDK] Problem z logowaniem
ZaqU
post 12.08.2014, 10:56:22
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

Ostrzeżenie: (0%)
-----


Mam problem z logowaniem za pomocą Facebook SDK for PHP (wersja 4, najnowsza). Nie wiem czy jest to spowodowane tym, że pracuję na localhoście, a nie na normalnej domenie, czy może po prostu po prostu o czymś zapomniałem w kodzie, albo coś przeoczyłem w dokumentacji Facebooka (zaznaczę, że była bardzo skąpa).

W każdym bądź razie, kod prezentuje się następująco:
  1. FacebookSession::setDefaultApplication('ID_MOJEJ_APLIKACJI', 'SECRET_MOJEJ_APLIKACJI');
  2.  
  3. $helper = new FacebookRedirectLoginHelper('http://localhost/');
  4. $loginUrl = $helper->getLoginUrl();
  5. echo "<a href='".$loginUrl."'>[ Logowanie przez fb ]</a>";
  6.  
  7. try {
  8. $session = $helper->getSessionFromRedirect();
  9. } catch (FacebookRequestException $ex) {
  10. echo "{ FacebookRequestException }";
  11. } catch (\Exception $ex) {
  12. echo "{ Exception }";
  13. }
  14.  
  15. if ($session) {
  16. // Logged in
  17. echo "{ Logged in }";
  18. } else {
  19. echo "{ Nope! Session is NULL }";
  20. }


Samo logowanie działa, to znaczy po kliknięciu przekierowuje ponownie na localhosta z dwoma parametrami GET, zaś gdy kliknąłem na ten przycisk po raz pierwszy, aplikacja poprosiła o zgodę na udzielenie informacji o mnie. Jednak na tym działanie aplikacji się kończy. Sesja jest pusta i zwraca { Nope! Session is NULL }. Poza tym PHP nie zwraca i nie raportuje żadnych błędów. Większość poradników w Internecie jest już nieaktualnych ze względu na nową (4.0) wersję tego API.

Ten post edytował ZaqU 13.08.2014, 00:12:30
Go to the top of the page
+Quote Post
NoWay
post 12.08.2014, 11:10:25
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 25.01.2014

Ostrzeżenie: (0%)
-----


Myślę, że to wina tego, że pracujesz na localhost. Spróbuj sobie założyć domenę na jakiejś darmowej stronie i tam spróbować.
Go to the top of the page
+Quote Post
ZaqU
post 12.08.2014, 21:42:27
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 21.01.2013

Ostrzeżenie: (0%)
-----


Niestety nie mogę przetestować tego na innym serwerze. Raz, że będzie z tym za dużo problemów, a dwa, że korzystam z Symfony2 i głupotą byłoby testowanie Facebooka w jednym miejscu, a innych pakietów tego frameworka w drugim (w szczególności debugowanie). Myślałem nad tym, ale czym różni się localhost od zwykłej domeny, w szczególności, gdy jest on wpisany w konfiguracji aplikacji na stronie Facebook Developers.

-- EDIT --

Mały postęp, ustawiłem w pliku C:/Windows/System32/drivers/etc/host aby adres local.example.me przekierowywał na adres IP localhosta. Nie wiem jakim cudem to działa, ale takie rozwiązanie znalazłem na stackoverflow i poniekąd działa.

Poniekąd, ponieważ teraz wyświetla się błąd Symfony2:
Kod
Session not active, could not store state.
500 Internal Server Error - FacebookSDKException
  1. // Stack Trace
  2. // in C:\XAMPP\htdocs\moj_projekt\vendor\facebook\php-sdk-v4\src\Facebook\FacebookRedirectLoginHelper.php at line 188 -
  3. {
  4. if ($this->checkForSessionStatus === true
  5. && session_status() !== PHP_SESSION_ACTIVE) {
  6. throw new FacebookSDKException(
  7. 'Session not active, could not store state.', 720
  8. );
  9. }

Nie wiem na czym może polegać ten błąd, ponieważ sesje są włączone i normalnie działają (testowałem pobieranie i zapisywanie danych w sesji). Macie jakieś pomysły?

Ten post edytował ZaqU 12.08.2014, 21:44:26
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 13:18