Sono stato in grado di consentire a un utente di accedere con Twitter tramite OmniAuth (ho seguito Railscast n. 235-6 e ho creato una semplice applicazione). Ora sto cercando di visualizzare il feed Twitter dell'utente che ha effettuato l'accesso. Qualcuno può dirmi come è fatto? Come inizializzare Twitter? Come posso passare il nome utente e la password dell'utente connesso? Sono nuovo di Rails quindi sarebbe utile se sapessi esattamente dove mettere il codice. GrazieVisualizzazione di un feed Twitter da un'app Rails
risposta
In primo luogo, non è necessario disporre delle credenziali dell'utente per ottenere un feed Twitter se è pubblico. Guarda lo Twitter gem. Una volta installato il gioiello, tutto quello che dovete fare è:
require 'twitter'
Twitter.user_timeline("icambron")
Prova ora a IRB per iniziare. Abbastanza facile, vero?
Ora, probabilmente si desidera utilizzare la chiave API perché Twitter limita le richieste anonime e può essere problematico da un server condiviso. Farlo in un initializer:
Twitter.configure do |config|
config.consumer_key = YOUR_CONSUMER_KEY
config.consumer_secret = YOUR_CONSUMER_SECRET
config.oauth_token = YOUR_OAUTH_TOKEN
config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
end
ottenere i valori reali dalla tua pagina sviluppatore Twitter.
Infine, per essere davvero fantasioso, se si desidera scalare, è possibile effettuare la richiesta per conto dell'utente, utilizzando le credenziali OAuth ottenute da OmniAuth (NON il nome utente e la password, non si dispone quelli). Ciò ti consentirà di fare molte più richieste al secondo, perché provengono da utenti diversi. Basta inizializzare Twitter con i campi consumer_key
e consumer_secret
impostati su quello che hai ottenuto dall'hash OmniAuth (vedi here, guarda sotto "credenziali" per vedere come ottenerli da OmniAuth).
Grazie. Non ho ancora bisogno di essere sofisticato, ma sono rimasto un po 'in sospeso qui, perché ancora non so come mettere quell'inizializzatore a riportare i tweet dell'utente connesso. Potresti mostrarmi come usare il codice di esempio che hai fornito (Twitter.user_timeline ("logged_in_users_username")) per farlo? – katherine
Inoltre, cosa intendi con "Basta inizializzare Twitter ..."? – katherine
Non capisco la tua prima domanda: l'inizializzatore configura semplicemente la gemma di Twitter in modo che tu possa collegarti a Twitter come account del tuo sviluppatore. La cosa 'user_timeline' è ciò che usi nel tuo codice per ottenere i tweet dell'utente. Conosci l'handle di Twitter dell'utente (giusto?) E sai come ottenere i tweet per un handle, quindi li metti insieme e ottieni i tweet dell'utente connesso. –
classe Tweet
BASE_URL = "http://api.twitter.com/1.1/statuses/user_timeline.json"
SCREEN_NAME = "OMGFacts"
MAX_TWEETS = 10000
CONSUMER_KEY = "PMiAyrY5cASMnmbd1tg"
CONSUMER_SECRET = "0TYRYg0hrWBsr1YZrEJvS5txfA9O9aWhkEqcRaVtoA"
class << self
def base_url
BASE_URL
end
def screen_name
SCREEN_NAME
end
def url(count = MAX_TWEETS)
params = {:screen_name => screen_name, :count => count}
[base_url, params.to_param].join('?')
end
def prepare_access_token(oauth_token, oauth_token_secret)
consumer = OAuth::Consumer.new(CONSUMER_KEY, CONSUMER_SECRET,
{ :site => "http://api.twitter.com",
:scheme => :header,
})
# now create the access token object from passed values
token_hash = { :oauth_token => oauth_token,
:oauth_token_secret => oauth_token_secret,
:open_timeout => 500000000
}
access_token = OAuth::AccessToken.from_hash(consumer, token_hash)
return access_token
end
def get(count = MAX_TWEETS)
count = Preference.get(:2000).to_i
access_token = prepare_access_token("178394859-cJlRaiQvqVusPAPjqC2Nn7r3Uc7wWsGua7sGHzs","3T8LCZTYXzuPLGzmWX1yRnKs1JFpfJLKemoo59Piyl8")
response = JSON.parse access_token.request(:get, url).body
response[0...count]
end
end
end
Può essere questo http://stackoverflow.com/questions/1665213/best-way-to-display-a-twitter-feed-with-history-on-a-rails -site aiuta. – gayavat
@gayavat Ho visto quella pagina. Non mostra alcun codice. Quello di cui ho bisogno è sapere esattamente cosa devo digitare per recuperare le informazioni dal Twitter dell'utente che ha effettuato l'accesso. – katherine
Ultimo commento punta a http://www.arctickiwi.com/blog/download-you-twitter-feed-using-ruby-on-rails-with-oauth dove è presente l'esempio di codice – gayavat