![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 0 Dołączył: 20.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Męczę się z pewnym problemem odnośnie logowania z konta facebook na stronie, dane pobieram, wszystko jest ok ale za żadne skarby nie mogę wywołać pozwoleń dot email, tzn pobieram tylko podstawowe dane, a potrzebuję jeszcze email Normalne wywołanie to:
a, żeby uzyskać pozwolenie powinien wyglądać tak: Link nie zmienia się, a powinno zostać doklejone &perms=email Ale niestety nie działa, czy ktoś już korzystał z tego i może wie jak ten problem rozwiązać? Ten post edytował indexx 25.03.2011, 12:25:40 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Kod 'req_perms' => 'email'
-------------------- Moja gra - scraby.io
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 7.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
kontynuje watek. a jak potem wyswietlic taki adres albo np zapisac go do bazy ?!
dodalem do swojego ale niestety teraz mi nie przechodzi przez logowanie. nic w sesje nie wlatuje. co radzicie ? pozdrawiam |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Zapisać do bazy? A po co? Nie widzę najmniejszego sensu.
Po prostu robisz coś takiego:
-------------------- Moja gra - scraby.io
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Do sessji chyba zawsze możesz się dobrać, dopiero jak
Rzuci wyjątkiem (FacebookApiException) to albo nie ma sessji, albo nie zaakceptował uprawnień. -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Niee.
Sesja jest potrzebna do jakiejkolwiek operacji na graph api, tj popranie danych o userze, jego znajomych etc. Sesje możemy pobrać (a właściwie to głównie o access_token chodzi) przez metodę getSession(), tak naprawdę nie musi być to zapisane w sesji, to gdzie to się zapiszę zależy od ustawień przeglądarki (tj. czy zaakceptuje ciacho z SIDem, jeśli nie to leci to GETem). Na stronie ustawionej jako główna strona appa w ustawieniach na fb możemy być pewni, że sesje dostaniemy, nie mam jej tylko w przypadku nie zaakceptowania uprawnień dostępowych ![]() -------------------- Moja gra - scraby.io
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem szybki test:
1. Usunąłem się ze swojej aplikacji na FB. Wynik: Otrzymałem normalnie sessję, ponieważ jak sama dokumentacja PHP-SDK mówi: Cytat Logged in vs Logged out: if ($facebook->getSession()) { echo '<a href="' . $facebook->getLogoutUrl() . '">Logout</a>'; } else { echo '<a href="' . $facebook->getLoginUrl() . '">Login</a>'; } Manual A zapytania do API można robić tylko gdy się wykona poprawnie to: Cytat To make API calls:
try { $me = $facebook->api('/me'); } catch (FacebookApiException $e) { error_log($e); } -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Eee... spójrz TUTAJ
Cytat If the user presses Allow (w sensie że w okienku z pytaniem o pozwolenia), your app is authorized. The OAuth Dialog will redirect (via HTTP 302) the user's browser to the URL you passed in the redirect_uri parameter with an authorization code: (...) Cytat If your app is successfully authenticated and the authorization code from the user is valid, the authorization server will return the access token:
-------------------- Moja gra - scraby.io
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Mówimy o różnych sposobach autoryzacji, ty mówisz o tokenach, a ja permanentnej akceptacji aplikacji - wtedy żadnych tokenów nie trzeba.
Ja tylko udowodniłem że sama sesja pozwala tylko stwierdzić czy użytkownik jest zalogowany na FB czy nie, a nie ma w niej żadnych informacji o tym iż zaakceptował naszą aplikację. -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mówimy o różnych sposobach autoryzacji, ty mówisz o tokenach, a ja permanentnej akceptacji aplikacji - wtedy żadnych tokenów nie trzeba. zawsze potrzebny jest token. Mozesz sie autentykowac jako aplikacja, ale wtedy masz token aplikacji. Nawet jesli user dal Ci uprawnienia offline, to dalej o ile sprawdzałem potrzebujesz jego tokenu - musisz go gdzies zapamietac. Nie ma czegos takiego jak "permanentna akceptacja aplikacji", zawsze akceptujesz aplikacje na pewnych konkretnych warunkach ktore okreslone sa przez uprawnienia. Jesli user zaakceptuje prosbe o nadanie uprawnien dla aplikacji, wtedy aplikacja otrzymuje token. Jesli token sie przedawni, wtedy aplikacja nie ma juz dostepu do danych ktore udostepnial jej token. Nastepnym razem gdy user wejdzie i sie "zaloguje" (czyli utworzy i przekaze token), nie bedzie musial ponownie zgadzac sie na nadanie uprawnien, nawet do tego stopnia ze zostanie "samoczynnie zalogowany" czyli logowanie/przekazanietokenu przebiegnie bez zadnej interakcji z uzytkownikiem. Cytat Zapisać do bazy? A po co? Nie widzę najmniejszego sensu. po to zeby wyslac userowi email, nawet jesli nie uzywa akurat aplikacji. Po to miedzy innymi sa te smieszne hashowane adresy email ktore leca przez facebook.com(z tego co pamietam zapisywanie innych w Twojej bazie jest niezgodne z regulaminem, ale i tak wszyscy to robia). Cytat Sesje możemy pobrać (a właściwie to głównie o access_token chodzi) przez metodę getSession() sesja to nie do konca jest access token. Access token pobierasz za pomoca getAccessToken ![]() btw. co ten temat robi w dziale AJAX ? Ten post edytował yevaud 29.03.2011, 00:38:57 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego mi dziś nikt nie wierzy
![]() http://apps.facebook.com/luq-foo Kod:
Po prostu jak masz sesje dla aplikacji i tą aplikację usuniesz z "Aplikacje, z których korzystasz" to dalej masz przydzieloną sesję do niej bo jest ona przydzielana na określony czas... @up Cytat Cytat Cytat Zapisać do bazy? A po co? Nie widzę najmniejszego sensu. po to zeby wyslac userowi email, nawet jesli nie uzywa akurat aplikacji. Po to miedzy innymi sa te smieszne hashowane adresy email ktore leca przez facebook.com(z tego co pamietam zapisywanie innych w Twojej bazie jest niezgodne z regulaminem, ale i tak wszyscy to robia). Ale to co zwróci getLoginUrl()? Cytat Cytat Sesje możemy pobrać (a właściwie to głównie o access_token chodzi) przez metodę getSession() sesja to nie do konca jest access token. Access token pobierasz za pomoca getAccessToken smile.gif Aj tam czepiasz się słówek ;P Oczywiście chodziło mi o to że sesja jest złożona z access_token
Ten post edytował #luq 29.03.2011, 01:00:33 -------------------- Moja gra - scraby.io
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego mi dziś nikt nie wierzy ![]() Po prostu jak masz sesje dla aplikacji i tą aplikację usuniesz z "Aplikacje, z których korzystasz" to dalej masz przydzieloną sesję do niej bo jest ona przydzielana na określony czas... ![]() Jesli odbierzesz uprawnienia z aplikacji, wtedy token pochodzi jeszcze chwile bo facebook propaguje zmiany, ale po chwili przestaje dzialac, a poniewaz dalej bedziesz go wysylal to facebook go odrzuci i dostaniesz krzaki btw. dostep do czesci /me jest publiczny, token golej aplikacji wystarcza w pelni. Aby zadzialalo /me wystarczy nieautoryzowana sesja na tokenie zautentykowanej aplikacji konczac temat sesji/tokenu: Facebookowa sesja moze zawierac token, ale nie musi. Sesja oznacza ze user jest zalogowany w facebooku, dostajesz wtedy w sesji jego uid. W momencie gdy user dodatkowo da uprawnienia dla aplikacji i przekaze jej token, wtedy token dopisywany jest do sesji, ale token nie jest sesja, sesja moze go opcjonalnie zawierac. Jesli nie ma sesji, to znaczy ze wszedl user ktory nie zalogowal sie na facebooku(moze nawet nie ma tam konta) Ten post edytował yevaud 29.03.2011, 01:08:35 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 20:33 |