2012-04-16 14 views
7

मैं ओमनीएथ के माध्यम से ट्विटर के साथ एक उपयोगकर्ता साइन इन करने में सक्षम हूं (मैंने रेलस्कास्ट # 235-6 का पालन किया और एक साधारण आवेदन किया)। अब मैं लॉग इन उपयोगकर्ता की ट्विटर फ़ीड प्रदर्शित करने की कोशिश कर रहा हूं। क्या कोई मुझे बता सकता है कि यह कैसे किया जाता है? मैं ट्विटर कैसे शुरू करूं? मैं लॉग इन उपयोगकर्ता के उपयोगकर्ता नाम और पासवर्ड में कैसे पास करूं? मैं रेल के लिए नया हूं इसलिए अगर मैं जानता हूं कि कोड कहां रखना है तो यह सहायक होगा। धन्यवादएक रेल ऐप से एक ट्विटर फ़ीड प्रदर्शित करें

+0

इस हो सकता है http://stackoverflow.com/questions/1665213/best-way-to-display-a-twitter-feed-with-history-on-a-rails साइट मदद करता है। – gayavat

+0

@ आगावत मैंने उस पृष्ठ को देखा। यह कोई कोड नहीं दिखाता है। मुझे जो चाहिए वह यह जानना है कि लॉग इन उपयोगकर्ता के ट्विटर से जानकारी प्राप्त करने के लिए मुझे क्या टाइप करना है। – katherine

+0

अंतिम टिप्पणी http://www.arctickiwi.com/blog/download-you-twitter-feed-using-ruby-on-rails-with-oauth जहां कोड उदाहरण मौजूद है – gayavat

उत्तर

17

सबसे पहले, यदि आप सार्वजनिक हैं तो ट्विटर फ़ीड प्राप्त करने के लिए आपको उपयोगकर्ता प्रमाण-पत्र की आवश्यकता नहीं है। Twitter gem पर देखें। एक बार जब आप मणि स्थापित करते हैं, तुम सब करने की जरूरत है:

require 'twitter' 
Twitter.user_timeline("icambron") 

आईआरबी में इसे आज़माएं आरंभ करने के लिए। बहुत आसान, है ना?

अब, आप शायद अपनी एपीआई कुंजी का उपयोग करना चाहते हैं क्योंकि ट्विटर अज्ञात अनुरोधों को सीमित करता है, और यह किसी साझा सर्वर से समस्याग्रस्त हो सकता है।

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 

अपने ट्विटर डेवलपर पृष्ठ से वास्तविक मान प्राप्त करें: कि एक initializer में है।

अंत में, वास्तव में फैंसी पाने के लिए, यदि आप स्केल करना चाहते हैं, तो आप OmniAuth से प्राप्त OAuth प्रमाण-पत्रों का उपयोग करके उपयोगकर्ता की ओर से अनुरोध कर सकते हैं (उनके उपयोगकर्ता नाम और पासवर्ड नहीं; आपके पास नहीं है उन)। इससे आपको प्रति सेकंड बहुत अधिक अनुरोध करने की अनुमति मिल जाएगी, क्योंकि वे अलग-अलग उपयोगकर्ताओं से आ रहे हैं। ओमनीएथ हैश से मिली सामग्री पर सेट consumer_key और consumer_secret फ़ील्ड्स के साथ बस ट्विटर को प्रारंभ करें (here देखें, "क्रेडेंशियल्स" के अंतर्गत देखें ताकि उन्हें OmniAuth से कैसे प्राप्त किया जा सके)।

+0

धन्यवाद। मुझे अभी तक फैंसी पाने की ज़रूरत नहीं है, लेकिन मैं यहां लटक रहा हूं, क्योंकि मुझे अभी भी पता नहीं है कि शुरुआत में उस सामान को कैसे डालने से उपयोगकर्ता में लॉग इन की ट्वीट आती है। क्या आप कृपया मुझे दिखाए गए उदाहरण कोड का उपयोग कैसे करें (Twitter.user_timeline ("log_in_users_username")) ऐसा करने के लिए? – katherine

+0

इसके अलावा, "बस ट्विटर शुरू करें ..." से आपका क्या मतलब है? – katherine

+0

मुझे आपका पहला प्रश्न नहीं पता - प्रारंभकर्ता सिर्फ ट्विटर मणि को कॉन्फ़िगर करता है ताकि आप ट्विटर पर अपने डेवलपर खाते के रूप में कनेक्ट कर सकें। उपयोगकर्ता की ट्वीट प्राप्त करने के लिए 'user_timeline' चीज़ वह है जिसे आप अपने कोड में उपयोग करते हैं। आप उपयोगकर्ता के ट्विटर हैंडल (दाएं?) को जानते हैं और आप जानते हैं कि हैंडल के लिए ट्वीट कैसे प्राप्त करें, ताकि आप उन्हें एक साथ रख सकें और आपको लॉग-इन उपयोगकर्ता की ट्वीट मिल जाए। –

0

वर्ग ट्वीट

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 
संबंधित मुद्दे