2011-08-15 18 views
8

Korzystam z przykładu innego niż JS z najnowszego SDK FB PHP. Działa dobrze, z wyjątkiem sytuacji, gdy użytkownik zamyka przeglądarkę i ponownie otwiera stronę. Muszą ponownie kliknąć link logowania do FB.Facebook PHP SDK, jak utrzymać trwałe logowanie

Byłem pod założeniem $ facebook-> getUser() obsługuje pliki cookie.

Kod:

 require 'sdk/facebook/src/facebook.php'; 
     $facebook = new Facebook(array(
     'appId' => 'test', 
     'secret' => 'test', 
     'cookie' => true)); 


// Get User ID 
$user = $facebook->getUser(); 

// We may or may not have this data based on whether the user is logged in. 
// 
// If we have a $user id here, it means we know the user is logged into 
// Facebook, but we don't know if the access token is valid. An access 
// token is invalid if the user logged out of Facebook. 

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $loginUrl = $facebook->getLoginUrl(); 
} 

?> 

Czy istnieje dodatkowy krok Brakuje mi tutaj? Znalazłem tutaj kod do wyciągania danych z ciasteczek FB: facebook auto re-login from cookie php

Najwyraźniej nie jest to już potrzebne z SDK?

Odpowiedz

2

Nie można tego zrobić bez strony klienta.

Twój skrypt nie ma wystarczających informacji, aby wiedzieć, jaki użytkownik zażądał tej strony.

I nie można nic zrobić z ciasteczkami, ponieważ sesja facebook jest stanem dynamicznym przechowywanym na serwerach Facebook. Jest to więc jedyny możliwy sposób użycia JS SDK, pobranie bieżącej sesji i użycie jej po stronie serwera.

Powiązane problemy