Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Facebook SDK -> CURL - próba zalogowania się na stronę poprzez facebooka
Michael2318
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Próbuję zalogować się na stronę poprzez facebooka (Login with Facebook) poprzez curl'a. Czyli standardowo jeśli chcemy zalogować się gdzieś poprzez facebooka, klikamy w button: Login with Facebook, przekierowuje nas do logowania do facebooka, potem do okna, gdzie zatwierdzamy uprawnienia i potem z powrotem lecimy na pierwotną stronę, będąc już zalogowanym.

W całym tym skrypcie chodzi o to, że chcę poprzez crona co X czasu dodawać posta w mojej grupie z pewnym zdjęciem (co post to inne zdj.) z wykorzystaniem SDK. Zdjęcia są na moim serwerze. Nie mogę jednak tego zrobić jeśli jakoś nie zautomatyzuję sprawy związanej z tym klikaniem w button, czyli po prostu autoryzacją po stronie facebooka.

Doszedłem do tego, że najpierw mogę zalogować się poprzez curl'a na FB. Potem mogę sobie wygenerować adres url do "logowania" (jestem już zalogowany tak naprawdę, ale chodzi o adres, który generuje SDK za pośrednictwem:

  1. $loginUrl = $facebook->getLoginUrl(array('redirect_uri'=>$homeurl,'scope'=>$fbPermissions));


). Jak wejdę w link zawarty w zmiennej $loginUrl to normalnie musiałbym się tam dopiero logować, a że zalogowałem się już wcześniej to teoretycznie po wejściu w link z tej zmiennej powinienem zostać automatycznie przekierowany do mojej strony, gdzie autoryzacja po stronie facebooka powinna być wykonana poprawnie.
Tak jednak nie jest. Logować mnie loguje do facebooka poprawnie, natomiast jeśli próbuję wejść w link ze zmiennej w $loginUrl, dostaję białą stronę po długim "myśleniu" serwera. Zarówno logowanie do FB jak i przechodzenie w link ze zmiennej $loginUrl wykonuję, dodając do mojego połączenia CURL ten fragment:

  1. curl_setopt($c, CURLOPT_COOKIEFILE, 'fb_cache.txt');
  2. curl_setopt($c, CURLOPT_COOKIEJAR, 'fb_cache.txt');


zapisujący moje cookiesy. Tak więc jak już skrypt mnie poprawnie zaloguje, po wejściu w link ze zmiennej $loginUrl dostaję białą stronę. Jeśli jednak usunę z połączenia CURL powyższe dwa zapisy dot. cookiesów, zostaję przekierowany do formularza logowania. Potem dodaję powyższe dwie linie i znów próbuję wejść na stronę - znów myśli, aż w końcu kończy się to białą stroną. Potem znów usuwam powyższe dwie linie z kodu i znów jestem przekierowany do formularza z logowaniem. Finalnie dodaję te dwie linie i... jestem zalogowany, trafiam tam gdzie powinienem trafić.

Moje pytanie - dlaczego muszę dwa razy usuwać wzmiankę o zawartości cookiesów z curla, dwa razy je dodawać (wszystko naprzemiennie) i dopiero na końcu facebook nie robi problemów i:
a) widzi mnie jako zalogowanego usera na fb,
cool.gif przyjął do wiadomości, że zainicjowałem kliknięcie w button "login with Facebook"?

Może ktoś już się z tym męczył i mnie jakoś wspomorze dobrą radą?


Zapewne ktoś zapyta dlaczego najpierw nie wchodzę w adres ze zmiennej $loginUrl i tam po ukazaniu formularza logowania się nie loguję. Otóż próbowałem, ale mimo że uwzględniam wszystkie ukryte pola i uzupełniam je tak jak to powinno być, facebook mnie nie loguje, dostaję jedynie informację, że: "Aby kontynuować, muszę się zalogować"...

Dzięki.

Ten post edytował Michael2318 10.11.2014, 20:10:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
grzes999
post
Post #2





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

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


Jeżeli logujesz się wyłacznie po to zęby dodać posty na jakiejś tablicy, można to chyba było obejść po przez dostęp offline; ale już danow korzystałem z ich API to mogło się coś pozmieniać.
Go to the top of the page
+Quote Post
Michael2318
post
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


No właśnie w tym problem, że jest kilka wersji API (od 2.0 do 4.0 bodajże) i w każdej wersji to wyglądało trochę inaczej. Teraz czytając artykuły po necie, nie mogę się nic sensownego dowiedzieć bo większość dotyczy starych API i obecnie te rozwiązania są już nieużyteczne...
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 Aktualny czas: 21.08.2025 - 13:28