Ho un'applicazione in cui gli utenti possono collegare i loro account Facebook. Possono accedere utilizzando la loro e-mail, ma possono collegare il proprio account Facebook.Rails - Facebook con Omniauth e Koala: Come rinnovare un token scaduto
Nella vista in cui mostro le collegate social network (Facebook e altri), ho qualcosa di simile:
<%= image_tag @facebook.get_facebook_picture %>
Questa chiamerà un metodo di istanza in questo modo:
def get_facebook_picture
unless self.token.nil?
facebook_graph = Koala::Facebook::GraphAPI.new(self.token)
fb_picture = facebook_graph.get_picture("me", { :type => "small" })
end
end
Questo funzionerà bene a meno che il token di Facebook che ho memorizzato nel mio DB sia scaduto. Così ho aggiunto questo gestore di eccezioni nel controller citato:
def facebook_exception_handler exception
if exception.fb_error_type.eql? 'OAuthException'
# Let's get a new auth token... How?
else
logger.debug "Damn it. We don't know what error is coming from FB"
raise exception
end
end
ho intercettare l'eccezione correttamente, ma non riesco a vedere come avrei rinnovare il token di accesso che ho nel mio database. Si noti che il token di accesso che ho è stato inserito utilizzando OmniAuth. Quindi la mia domanda è:
Dato che ho un OAuthException
, come posso rinnovare il token di accesso di un determinato utente (UID) usando Omniauth?
Dal momento che questa non è una risposta alla tua domanda, mi limiterò a lasciare un commento ... ma si dovrebbe essere in grado di afferrare il immagini senza un token attivo usando: 'profile_pic = Koala :: Facebook :: GraphAPI.new.get_picture (fb_uid, {: type =>" large "})', giusto? – courtsimas
Se si desidera ottenere il token esteso di 60 giorni, [questo potrebbe essere d'aiuto] (http://stackoverflow.com/a/16721737/805003) – manafire