6

मैं ओमनीएथ + डेविस का उपयोग कर रहा हूं ताकि उपयोगकर्ता सामान्य उपयोगकर्ता खातों से जुड़े फेसबुक/ट्विटर/गोवाल्ला/आदि का उपयोग कर पंजीकरण कर सकें। अब जब कोई उपयोगकर्ता इनमें से किसी भी या उनके खाते का उपयोग करने में लॉग इन करता है, तो उनके सभी सोशल नेटवर्क प्रमाणीकरण तालिका में संलग्न होते हैं।OmniAuth + ट्वीट्स को खींचना, एफबी स्थान, आदि

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

मुझे omniauth.rb में प्रदाता कॉन्फ़िगरेशन आइटम्स तक पहुंचने में सक्षम होना चाहिए, इसलिए मेरे पास एपीआई कुंजी और गुप्त कुंजी आदि हैं, तो मुझे अनुरोध करने के लिए ओथ सामग्री से टोकन पकड़ने में सक्षम होना चाहिए।

अन्य रत्न जैसे oauth_token, oauth_secret और oauth_token को स्टोर करने लगते हैं, लेकिन OmniAuth नहीं करता है।

जैसा कि आप शायद बता सकते हैं कि मैं रूबी, रेल और ओथ के लिए बहुत नया हूं, इसलिए यह एक बहुत ही चुनौतीपूर्ण एप्लिकेशन बन रहा है। सहायता बहुत जरूरी है।

उत्तर

20

क्रमबद्ध!

टोकन और http://railscasts.com/episodes/236-omniauth-part-2 में वर्णित प्रमाणीकरणों मेज पर गुप्त गया लेकिन दो और पैरामीटर पर ध्यान देने authentication.build लाइन बदल:

authentications.build(
    :provider => omniauth['provider'], 
    :uid => omniauth['uid'], 
    :token => omniauth['credentials']['token'], 
    :secret => omniauth['credentials']['secret'] 
) 

तो http://dev.twitter.com/pages/oauth_single_token#ruby

class CronController < ApplicationController 

    def recent_tweets 
     # Exchange your oauth_token and oauth_token_secret for an AccessToken instance. 

     def prepare_access_token(oauth_token, oauth_token_secret) 
      consumer = OAuth::Consumer.new("APIKey", "APISecret" 
       { :site => "http://api.twitter.com" 
       }) 
      # now create the access token object from passed values 
      token_hash = { :oauth_token => oauth_token, 
             :oauth_token_secret => oauth_token_secret 
            } 
      access_token = OAuth::AccessToken.from_hash(consumer, token_hash) 
      return access_token 
     end 

     auth = current_user.authentications.find(:first, :conditions => { :provider => 'twitter' }) 

     # Exchange our oauth_token and oauth_token secret for the AccessToken instance. 
     access_token = prepare_access_token(auth['token'], auth['secret']) 

     # use the access token as an agent to get the home timeline 
     response = access_token.request(:get, "http://api.twitter.com/1/statuses/home_timeline.json") 

     render :json => response.body 
    end 
end 

से कोड उदाहरण का इस्तेमाल किया द्वारा current_user.authentications से सामग्री खींच रहा है (मुझे पहले खोजना है क्योंकि उनके पास केवल एक होना चाहिए) मैं टोकन और सुरक्षा और उसके सभी अच्छे को पकड़ सकता हूं।

अब मैं इसे ट्विक कर सकता हूं, सामान सहेजा जा सकता हूं, जेएसओएन के साथ एफएफ कर सकता हूं और मुझे जो चाहिए वह ले लो। मुझे यकीन है कि फेसबुक बहुत समान होगा।

+0

मीठे आदमी! मुझे पता है कि नंबर 2 के बाद आपका क्या मतलब है, अब मैं डेटा कैसे प्राप्त करूं। यह पूरा समय था और आपने मुझे सही दिशा में +1 की ओर इशारा किया! – s84

6

क्या आप यह देख रहे हैं? http://railscasts.com/episodes/236-omniauth-part-2 :) यह दिखाता है कि ईमेल जैसे डेटा कैसे पुनर्प्राप्त करें। सुनिश्चित नहीं है कि आप यही चाहते हैं।

+2

बंद करें, मैंने इसका पालन किया लेकिन अगले चरण के बारे में निश्चित नहीं था। यह एक अच्छा वीडियो है और यहां पर रहने वाले किसी भी व्यक्ति की मदद कर सकता है धन्यवाद :) –

संबंधित मुद्दे