2012-06-18 12 views
7

के साथ फेसबुक से" रीडायरेक्ट_री पैरामीटर "प्रतिक्रिया" यह शायद एक बहुत ही बेवकूफ सवाल है, लेकिन मैं इस पर घंटों तक घूर रहा हूं और मुझे यह नहीं मिल रहा है कि मैं क्या कर रहा हूं।"पाइथन/Django

मैं फेसबुक एपीआई के साथ प्रमाणित करने के लिए पायथन का उपयोग करने की कोशिश कर रहा हूं, लेकिन मुझे उपयोगकर्ता पहुंच टोकन का अनुरोध करने में समस्याएं आ रही हैं। एक कोड प्राप्त करने के बाद, मैं इतना की तरह https://graph.facebook.com/oauth/access_token के लिए एक अनुरोध करें: { "message":

conn = httplib.HTTPSConnection("graph.facebook.com") 
params = urllib.urlencode({'redirect_uri':request.build_absolute_uri(reverse('some_app.views.home')), 
          'client_id':apis.Facebook.app_id, 
          'client_secret':apis.Facebook.app_secret, 
          'code':code}) 
conn.request("GET", "/oauth/access_token", params) 
response = conn.getresponse() 
response_body = response.read() 

जवाब में, मैं

{ "त्रुटि" प्राप्त "। गुम redirect_uri पैरामीटर" " टाइप करें ":" ओएथएक्सप्शन "," कोड ": 1 9 1}}

कोई विचार क्या गलत हो सकता है? मैंने पहले से ही सत्यापित कर लिया है कि पारित किया जा रहा रीडायरेक्ट_री ऐप डोमेन पर है, लेकिन क्या यह एक मुद्दा हो सकता है कि यह स्थानीय रूप से होस्ट किया जा रहा है और वह डोमेन मेरी मेजबान फ़ाइल द्वारा स्थानीयहोस्ट पर रीडायरेक्ट किया गया है?

आपकी मदद के लिए धन्यवाद!

संपादित करें:

params = {'redirect_uri':request.build_absolute_uri(reverse('profiles.views.fb_signup')), 
          'client_id':apis.Facebook.app_id, 
          'client_secret':apis.Facebook.app_secret, 
          'code':code} 

r = requests.get("https://graph.facebook.com/oauth/access_token",params=params) 

हालांकि, मैं अब भी जब यह बहुत अधिक कठिनाई के बिना मूल रूप से समर्थन किया जाना चाहिए एक पुस्तकालय पर निर्भर होना पसंद करेंगे:

मैं इस काम के अनुरोध लाइब्रेरी का उपयोग मिल गया। हो सकता है कि यह बहुत ज्यादा (HTTPSConnection का उपयोग कर एक), आप अनुरोध के मुख्य भाग में params गुजर रहे हैं पूछ रहा है ...

+0

अपने स्थानीय होस्ट सही तरीके से सेट किया जाता है तो यह काम करना चाहिए: इसके बजाय, पैरामीटर URL की क्वेरी स्ट्रिंग भाग के रूप में पारित किया जाना चाहिए। फेसबुक जांच करेगा कि क्या पुनर्निर्देशन –

+0

काम करता है, मैंने यही सोचा। कोई विचार क्या गलत हो सकता है? – user1462558

+0

मिमीएम, फेसबुक डेवलपर्स पर आपके आवेदन पर जाएं। एप्लिकेशन यूरी से मेल खाने के लिए रीडायरेक्ट यूरी है –

उत्तर

1

अपने पहले उदाहरण में:

conn.request("GET", "/oauth/access_token", params) 

यह गलत है (प्राप्त अनुरोध करना चाहिए कोई शरीर नहीं है)।

conn.request("GET", "/oauth/access_token?" + params)