Penso che questo potrebbe effettuare un sacco di Facebook/sviluppatori di Android e tuttavia non sembra essere che molte discussioni sul tema ...È possibile estendere i token di Facebook con extendAccessTokenIfNeeded in un'app Android?
La mia domanda
chiunque ha rinfrescato con successo un token usando la funzione extendAccessTokenIfNeeded? Se hai avuto successo, quale versione era in esecuzione il dispositivo (o l'emulatore)?
Sfondo
ho ricevuto una mail da Facebook dicendo che il permesso offline_access sarà deprecato dal 1 ° maggio 2012 e Facebook consigliato l'aggiornamento al loro ultimo SDK. Belle.
Ho effettuato l'aggiornamento all'ultima SDK, l'app Facebook ufficiale è installata sul mio dispositivo e (eventualmente!) Single Sign On sembra funzionare correttamente. Ricevo token di 60 giorni che di nuovo sono OK.
I problemi sono iniziati quando ho provato a utilizzare extendAccessTokenIfNeeded (contesto contesto, ServiceListener serviceListener). Non riuscivo a farlo aggiornare i miei token per un tempo di scadenza più lungo. Ho aspettato 24 ore tra un tentativo e l'altro ma il token non si aggiornava. L'unico modo per ottenere un token aggiornato è disconnettersi e accedere. Questo è accaduto anche quando ho usato il progetto di esempio "Hackbook".
La risposta più ovvia è che sto facendo qualcosa di sbagliato, ma un bug report è stato inviato a Facebook dicendo che ... "shouldExtendAccessToken praticamente restituirà quasi sempre false". Questo rapporto ha ricevuto la priorità "lista dei desideri".
Alternative al extendAccessTokenAsNeeded()
Nelle Facebook documentation about offline_access deprecation token possono essere estese utilizzando l'API grafico. Tuttavia questo ha il disadvantage of needing the "App Secret" incluso nell'URL. Un vantaggio è che l'utente non avrebbe bisogno di avere l'app ufficiale di Facebook installata sul proprio dispositivo.
Altre idee e preoccupazioni
Cambiando la funzione extendAccessTokenIfNeeded in Facebook.java per tornare sempre vero, penso che ho preso per aggiornare una volta. (Il motivo dico "pensare" è perché non ripeterà il comportamento e ho il sospetto che devo aspettare altre 24 ore prima di ogni possibilità di un altro successo)
mi accorgo che Hackbook richiede AndroidHttpClient essere importati. Questo è disponibile solo per API 8 in poi. Significa questo che Facebook SSO (in particolare il token di aggiornamento) è probabile che funzioni su dispositivi con API 8 e versioni successive?
Il Facebook.apk included in the SDK è piuttosto vecchio. Forse questo è il motivo per cui i token non si aggiornano sugli emulatori che eseguono l'API 8 e versioni successive?
Infine, tutto ciò si riferisce solo a coloro che hanno installato l'app Facebook ufficiale ! Un altro metodo deve essere completato per quelle persone senza l'app ufficiale di Facebook (basta lamentarsi ora!)
Rilevante Facebook collega
Facebook-Android-SDK at GitHub
Facebook offline_access permission deprecation
correlati Stack Overflow domande
Facebook 60 day access token and Deprecated Offline_Access
Facebook access token can not be extended
How would offline_access work after deprecation after May 1st?
Facebook access token can not be extended
Protecting app secret for extendAccessToken usage (Java/Android)
"Cambiando la funzione extendAccessTokenIfNeeded in Facebook.java per restituire sempre true, penso di averlo aggiornato una volta. (La ragione per cui dico" penso "è perché non ripeterà il comportamento e sospetto di dover aspetta altre 24 ore prima di ogni possibilità di un altro successo) "Hai ripeterlo? – nmr