2014-11-16 11 views
7

La mia situazione e quello che ho (!):Come rinnovare/prolungare Facebook token di accesso con Koala gemma dal server senza interazione degli utenti a tutti

  1. applicazione Rails (ultima versione di Rails)
  2. Koala gemma (ultima versione)
  3. 1 (uno) utente Facebook - (!) (ad esempio, sono io), e questo è tutto, non più utenti
  4. pagina su un sito web senza alcuna forma FB d'accesso/roba simile

Ora situazione:

sto creando pagina ad un sito web, il mio codice dovrebbe tirare ultimi post dal mio account Facebook e visualizzarla in quella pagina.

quello che ho già fatto:

  1. ho aggiunto Koala gioiello
  2. Poi ho creato app sotto il mio account sviluppatore a FB e rilasciare alla app pieno accesso al mio profilo (è lo stesso profilo - sviluppatore e di voglio postare)
  3. Quindi ho creato il token di accesso app da qui (https://developers.facebook.com/tools/accesstoken) - quando ho eseguito il debug, mi ha detto FB, che questo token è un token breve, che scade tra 1 ora.
  4. Poi ho creato quel codice nel mio modello:

    oauth = Koala::Facebook::OAuth.new(APP_ID, APP_SECRET) 
    new_access_info = oauth.exchange_access_token_info self.get_token <- here i pull token from DB 
    
    new_access_token = new_access_info["access_token"] 
    new_access_expires_at = DateTime.now + new_access_info["expires"].to_i.seconds 
    
    self.update_all(:token => new_access_token) ***<- saving token in db*** 
    self.update_all(:exp => new_access_expires_at) ***<- saving expiration of token in db*** 
    
    @facebook ||= Koala::Facebook::API.new(self.get_token) 
    

Quindi, prima volta che ho messo la mia pedina a breve dal vivo direttamente in dB, quindi il mio codice può tirare da lì, poi, quando Ricarica la pagina, ho ottenuto un token NUOVO, long-live (ha data di scadenza 12/01/2015).

MA! Quando ogni volta ricarico la mia pagina, ottengo un token NEW ma con la data di scadenza SAME (il debugger di FB mi dice lo stesso, quando ho copiato il token dalla mia pagina e lo ho incollato nel debugger).

Ho anche cercato di farlo in giorni diversi, perché ho letto "da qualche parte", quella pedina periodo di ristrutturazione è una volta al giorno, ma:

Token sempre diverso, ma la data di scadenza sempre lo stesso.

quello che mi serve:

Per rinnovare quella pedina o scrivere il codice in modo che il token viene aggiornato automaticamente, senza interventi da parte mia, perché non c'è finestre d'accesso o qualcosa di simile. Dovrebbe funzionare SOLO dal lato server.

Qualche idea? Ho già letto molto di informazioni e domande simili, ma la maggior parte delle domande riguarda le interazioni dell'utente, come gli accessi nei moduli appropriati, ecc. Quindi: senza fortuna:/

+0

@Jobili, ha funzionato la soluzione di Mike? –

risposta

0

Puoi provare questo metodo.

@oauth = Koala::Facebook::OAuth.new(ENV['fb_app_id'], ENV['fb_app_secret']) 
oauth_access_token = @oauth.get_app_access_token 

@graph = Koala::Facebook::API.new(oauth_access_token) 
+0

'get_app_access_token' ottiene un token di accesso all'app, che può essere utilizzato solo per" modificare e leggere le impostazioni dell'app "e" pubblicare azioni Open Graph ". https://developers.facebook.com/docs/facebook-login/access-tokens –

Problemi correlati