Facebook api kérdések
Sziasztok!
Felmerült két probléma a facebook sdk használata közben.
1. Az egyik oldalamon a főoldalt betöltve lekérném a bejelentkezett felhasználókhoz tartozó adatokat, de amíg a kliens oldalon úgy tűnik, hogy be van jelentkezve a user (a Kijelentkezés gombot rendereli a megfelelő helyre), addig a szerver oldalon azt mondja a fb, hogy nincs bejelentkezve senki. A facebook doksijából kiindulva ez a kód állapítja meg, hogy be van-e jelentkezve a felhasználó (szerver oldalon):Tehát a kérdésem az volna, hogy mi miatt van kliens oldal szerint bejelentkezve, míg szerver oldal szerint nem a user?
2. A másik alkalmazásomban a bejelentkezés után érdekes módon meghívódik az auth.logout eseményre definiált függvény is. Oké, kis netes keresés után rábukkantam, hogy másnál is előfordul ilyen. Gondoltam, hogy ha lekérem a login status-t, akkor azzal letudom kezelni a "login logout" eseteket. A következő kódot próbáltam:Nem értem ez hogyan lehetséges, de a konzolra először kiír egy tök üres objektumot, majd 2-3 mp elteltével megjelenik az authResponse (ugyanabban a konzol sorban, ami az előbb még teljesen üres volt). Természetesen így meg nem tudom leellenőrizni, hogy be van-e még jelentkezve a felhasználó vagy sem. Találkozott már valaki ilyennel? Miért fut le a callback függvény a válasz megérkezése előtt?
Köszönöm a válaszokat!
■ Felmerült két probléma a facebook sdk használata közben.
1. Az egyik oldalamon a főoldalt betöltve lekérném a bejelentkezett felhasználókhoz tartozó adatokat, de amíg a kliens oldalon úgy tűnik, hogy be van jelentkezve a user (a Kijelentkezés gombot rendereli a megfelelő helyre), addig a szerver oldalon azt mondja a fb, hogy nincs bejelentkezve senki. A facebook doksijából kiindulva ez a kód állapítja meg, hogy be van-e jelentkezve a felhasználó (szerver oldalon):
try {
$user = $facebook->api('/me','GET');
$userId = $user['id'];
} catch(FacebookApiException $e) {
$userId = false;
}
if($userId) { /* A user bejelentkezve */ }
2. A másik alkalmazásomban a bejelentkezés után érdekes módon meghívódik az auth.logout eseményre definiált függvény is. Oké, kis netes keresés után rábukkantam, hogy másnál is előfordul ilyen. Gondoltam, hogy ha lekérem a login status-t, akkor azzal letudom kezelni a "login logout" eseteket. A következő kódot próbáltam:
FB.Event.subscribe('auth.logout', function() {
FB.getLoginStatus(function(response) {
console.log(response.authResponse);
});
});
Köszönöm a válaszokat!
Bejelentkezve
A második probléma esetén pedig kicsit több adatot loggolj, például az esemény nevét is, mert így nehéz bármiből is kiindulni. Az is lehet, hogy valami teljesen más loggolt valami mást a konzolba.
Igen, eddig jutottam én is
Nekem csak a userId-re van szükségem. Tegyük fel, hogy valóban csak a facebookba és nem az app-ba vagyok bejelentkezve. Ekkor is kéne működnie a "$user = $facebook->api('/me','GET');" sornak, ami lekéri a user alapadatait, ami között szerepel az id-je. Azonban sok esetben a $user változó false lesz, míg a főoldalon a kijelentkezés gombot rajzolja ki. A kérdésedet nem értem. Én nem csinálom sehogy a bejelentkezést. A user jön, rákattint a login gombra, megjelenik a bejelentkező ablak, majd bejelentkezés után lefut az auth.login eseményre definiált függvény.
Nem más loggolt, egyetlen egy darab console.log van kódban. A logout eseményre átirányít egy másik oldalra a kód, emiatt is figyeltem fel a hibára, mivel login után egyből átirányított a megadott oldalra.
Más kódja
console.log
-od, de a Facebook is szokott konzolra írogatni. Egyébként pedig console.log helyett hasznosabb tud lenni egy breakpoint berakása a megfelelő függvénybe, mert több adat kiderül arról, hogy mi, és hogyan is futott le.Előfordul, hogy nincs