2012-04-10 15 views
5

का उपयोग कर फेसबुक के लिए ओथ एक्सेस टोकन कैसे प्राप्त करें, मैं प्रोग्रामिंग के लिए प्रोग्रामिंग के लिए ओथ एक्सेस टोकन प्राप्त करने का प्रयास कर रहा हूं।रूबी

मेरे कोड इस प्रकार है:

client = OAuth2::Client.new(
    APP_ID, 
    SECRET_ID, 
    :authorize_url => "/dialog/oauth", 
    :token_url => "/oauth/access_token", 
    :site => "https://www.facebook.com/" 
) 

code = client.auth_code.authorize_url(:redirect_uri => "http://www.facebook.com/") 
token = client.auth_code.get_token(code, :redirect_uri => "https://graph.facebook.com/") 
OAuth2::AccessToken.new(client, token.token, {:mode => :query, :param_name =>"oauth_token"}) 

जब मैं ऊपर गहरे लाल रंग का कोड चलाने का प्रयास, मैं निम्न अपवाद

https://www.facebook.com/dialog/oauth?response_type=code&client_id=APP_ID 
51&redirect_uri=http%3A%2F%2Fwww.facebook.com%2F 

/home/ec2-user/.rvm/gems/[email protected]/gems/oauth2-0.5.2/lib/oauth2/clie 
nt.rb:129:in `get_token': OAuth2::Error (OAuth2::Error) 
     from /home/ec2-user/.rvm/gems/[email protected]/gems/oauth2-0.5.2/li 
b/oauth2/strategy/auth_code.rb:29:in `get_token' 
     from oauth.rb:16:in `<main>' 

किसी भी मदद की बहुत सराहना कर रहा है के रूप में मैं बिताया है हो रही है इसे हल करने की कोशिश करते समय एक दिन से अधिक।

+0

किसी भी विचार की बहुत सराहना की जाती है! –

+0

आपको उत्तर के लिए अपनी स्वीकृति दर बढ़ानी चाहिए। –

+0

लेकिन यहां शुरू करने के लिए कुछ है: आपका redirect_urii Facebook.com का प्रतीत होता है, लेकिन वे आपका यूआरएल होना चाहिए। –

उत्तर

2

क्या आपने localhost:3000 के बजाय अपना वास्तविक आईपी पता ex. 231.61.233.57:3000 के बजाय redirect_uri के रूप में डालने का प्रयास किया है? इसके अतिरिक्त आप परीक्षण प्रयोजनों के लिए एसएसएच सुरंग का उपयोग करने का प्रयास कर सकते हैं ताकि आपका लोकलहोस्ट एप्लिकेशन दुनिया भर में उपलब्ध हो। इसे http://progrium.com/localtunnel/ देखें। जब आपको इस टूल से आईपी पता मिलेगा तो इसे redirect_uri param पर सेट करने का प्रयास करें।

+0

मैं मानता हूं कि 'redirect_uri' समस्या है। रीडायरेक्ट करने वाला एपीआई केवल अधिकृत एप्लिकेशन से जुड़े यूआरआई को रीडायरेक्ट कर सकता है। (मुझे नहीं पता कि फेसबुक ऐसा करता है, लेकिन अन्य ओथ एपीआई मैंने काम किया है।) – pjmorse