2009-03-05 18 views
10

Sto utilizzando Facebooker con Rails per connettere la mia applicazione a Facebook. Posso indirizzare l'utente attraverso il processo di autorizzazione e attraverso il processo di concessione dell'accesso offline alla mia applicazione.Ottenere offline_access per funzionare con Facebook

In che modo posso accedere alle informazioni offline? C'è un modo per richiedere un session_key che non scade che posso usare in un secondo momento, a patto che l'utente non abbia revocato le autorizzazioni per la mia applicazione su Facebook?

Qualsiasi aiuto molto apprezzato. I consigli non devono essere specifici per i binari.

risposta

0

MODIFICA: apparently, la concessione di "offline_access" continua a fornire (e continuerà a farlo) una chiave di sessione infinita. basta salvare questa chiave speciale e utilizzarla nella chiamata a Status.get ecc. vedere here per un esempio di codice (PHP).

http://wiki.developers.facebook.com/index.php/New_Design_User_Login:

molte API non sono più chiamate richiedono chiavi di sessione

quindi se la vostra applicazione è concessa offline_access, è possibile utilizzare le chiamate API listed here senza session_key.

E stiamo cambiando più metodi in modo da non avrete bisogno di una chiave di sessione per fare qualcosa quando l'utente non è in linea, piace inviare una notifica.

+0

Grazie per le informazioni sulle funzioni che non richiedono una chiave di sessione. Sfortunatamente i metodi di cui ho bisogno richiedono un session_key che non scada. – Mattew

+0

quali sarebbero i metodi? –

+0

Il metodo User.getSession. Sto cercando di recuperare il loro flusso di aggiornamenti di stato. – Mattew

2

Dopo aver chiesto e concesso l'accesso offline, la chiave di sessione che si ottiene nei parametri HTTP POST di Facebook (fb_sig_session_key) non avrà scadenza.

È possibile verificare se si dispone di tale chiave controllando il parametro fb_sig_expires, se questo è "0", la chiave di sessione non ha scadenza.

Se avete un auth_token quindi è possibile chiamare getSession per ottenere la chiave di sessione e controllare il campo Scadenza:

var auth = _auth.getSession(AuthToken); 
string sessionKey = auth.session_key; 
long uid = auth.uid; 
bool expires = auth.expires > 0; 
+2

Ciao Mark - grazie per le informazioni. Sai se la chiave di sessione cambia dopo aver ottenuto l'accesso offline? In Facebooker, la chiave di sessione che ritorna sembra essere la stessa di quella con cui ho iniziato e ha una scadenza. Matt – Mattew

0

Una volta a ottenere il permesso di accesso offline da un utente, il trucco è quello di chiamare con un filter_key parametro di 'rete'.

In PHP, che è:

$feed = $facebook->api_client->stream_get($uid, '', '', '', 20, 'network', ''); 

Provalo, funziona ....

1

Ho appena fatto un tutorial sul mio blog con una spiegazione passo passo sulle modalità di accesso dell'utente collegato dati. Si presuppone che tu stia lavorando con RoR e il plugin Facebooker.

Problemi correlati