2011-12-16 13 views
5

Questa funzione ha funzionato per me fino all'altro giorno in cui Facebook ha deciso di applicare alcune modifiche.Cookie Facebook e modifiche oauth 2.0

function get_facebook_cookie() { 
    $app_id    = '[MyAppID]'; 
    $application_secret = '[MyAppSecrect]'; 

    if(isset($_COOKIE['fbs_' . $app_id])){ 
     $args = array(); 
     parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args); 
     ksort($args); 
     $payload = ''; 
     foreach ($args as $key => $value) { 
       if ($key != 'sig') { 
       $payload .= $key . '=' . $value; 
       } 
     } 
     if (md5($payload . $application_secret) != $args['sig']) { 
       return null; 
     } 
     return $args; 
     } else { 
     return null; 
     } 
} 

Sono stato il grado di ottenere gli utenti FB accedono gettone facilmente come

$cookie['access_token'] 

Ora non sembra che io sia in grado di recuperare più queste informazioni.

Sono riuscito (facilmente) in grado di apportare le modifiche richieste al mio codice javascript, ma sono un po 'stumped sul lato php. Come nota a margine sto usando il codeigniter e ho avuto un sacco di problemi nel cercare di far funzionare l'SDK FB PHP, inoltre non ho visto alcun esempio di integrazione dell'SDK di PHP 3 in codeigniter, quindi sono alla ricerca di una soluzione rapida e sporca che mi permetterà di ottenere il token di accesso dal cookie consentendo così me di utilizzare la seguente chiamata a Facebooks API:

'https://api.facebook.com/method/friends.getAppUsers?access_token=' . $cookie['access_token']; 

Qualsiasi aiuto è molto apprezzato.

risposta

7

perché Facebook cambia il nome del cookie da fbs_ a fbsr_.

Ma c'erano altri cambiamenti. Basta seguire this steps

+1

Grazie per il suggerimento. Cambiare il codice in fbsr_ restituisce il seguente errore php "Messaggio: indice indefinito: sig" che si riferisce a questa riga nel mio codice sopra "if (md5 ($ payload. $ Application_secret)! = $ Args ['sig']) ". Qualche idea? – Joshua

+0

La soluzione migliore è var_dump i tuoi $ arg per vedere cosa hai effettivamente. – Eric

+1

ci sono stati altri cambiamenti, controlla se questo suggerimento funziona: [link] (http://blog.codebusters.pl/en/entry/oauth-20-facebook-changes-and-cookie-problem-in-codeigniter/) – Kokers

Problemi correlati