2013-07-09 6 views
7

Caro Stackoverflowianers! Cari sviluppatori di Facebook!La sessione è stata invalidata perché l'utente ha cambiato la password -> non è stata modificata la password

Ho creato un paio di app di Facebook di settimane fa. In questo momento ha funzionato perfettamente. Il mio PHP-Script verifica se il token di accesso è almeno 10 giorni prima della scadenza (prima è automaticamente impostato su una data di scadenza lunga) e in tal caso (se> = data di scadenza - 10) tenta di ottenere un nuovo token di accesso per lo stesso utente (che sono io, me stesso e io).

Il problema è che da ieri mi genera un errore:

Fatal error: Uncaught OAuthException: Error validating access token: The session has been invalidated because the user has changed the password. 

Ora la mia domanda è: come si può gettare questo errore come non ho mai cambiato la mia password su FB ???

Qualcuno ha qualche suggerimento per me nella giusta direzione per risolvere questo problema? Sarei molto grato per qualsiasi aiuto.

Con i migliori saluti,

AceLine

+0

Non tanto in una volta !!! ; o) –

+0

Sono dello stesso problema .. oO come? – Crasher

risposta

0

In realtà non c'è nulla di sbagliato nel vostro flusso. In realtà genera quell'errore quando il token è scaduto.

Abbiamo già riscontrato questo tipo di errore e ciò che abbiamo fatto è stato controllare regolarmente che lo accessToken sia ancora valido se non lo è, quindi ne generiamo e ne salviamo uno nuovo. Tuttavia, quando viene impostato lo accessToken che verrà utilizzato, estendiamo anche la durata del token prima di salvarlo nel database locale. Vedere extendedAccessToken

Ecco un aggiornamento del campione (Questo è solo un codice di massima):

// Set the access token and extend it 
$facebookClient = new FacebookClient(); 
$facebookClient->setAccessToken($accessToken); 
$facebookClient->setExtendedAccessToken(); 

// Query your user that will have the updated access token and update it. 
$user = User::get($userId); 
$user->accessToken = $facebookClient->getAccessToken(); 
$user->update();