2013-02-17 12 views
5

मैं एपीआई का उपयोग कर पहले अपलोड की गई छवि के विवरण को बदलने का प्रयास करने के लिए पायथन 2.7 में अनुरोधों का उपयोग कर रहा हूं।Imgur API मौजूदा छवि का विवरण नहीं बदल रहा है

{u'status': 200, u'data': False, u'success': True} 

तो, जहाँ तक मैं देख सकता हूँ OAuth ठीक काम कर रहा है, लेकिन आप API ही है:

r = requests.post('https://api.imgur.com/3/image/'+submission['id'], \ 
       headers={'Authorization':'Bearer '+access_token}, \ 
       data={'description':'blahblahblah'}, verify=False) 

यह क्या मैं बदले में मिलता है: Imgur's API manual के अनुसार मैं इस का इस्तेमाल किया वापस आ रहा है "झूठा" और विवरण बदल नहीं है। मुझे इस विशेष अंतराल के बारे में कहीं और मार्गदर्शन नहीं मिल रहा है। कोई विचार?

+3

आप 200 का एक 'status' कोड है, और' success' है 'TRUE' है, तो जहाँ तक जैसा कि इम्गुर का संबंध है, आपका एपीआई कॉल सफल रहा था। यहां से जो भी समस्याएं हो सकती हैं, उस मामले के लिए इम्गुर एपीआई, * नहीं * 'अनुरोध 'या पायथन के साथ हैं। –

+1

एकमात्र चीज जिसे मैं देख सकता हूं आप अलग-अलग कर सकते हैं शायद '.json' एक्सटेंशन का उपयोग करना है, इसलिए' https://api.imgur.com/3/image/{}.json'.format(submission का उपयोग करें ['आईडी']) 'के बजाय यूआरएल के रूप में। –

+0

अन्यथा, ध्यान दें कि इम्गुर प्रतिक्रियाएं अन्यथा भारी रूप से कैश की जाती हैं, विवरण सेट करने का नतीजा कुछ समय के लिए छुपाया जा सकता है यदि कैश के परिणाम अभी भी थोड़ी देर के लिए परोसे जा रहे हैं। यदि आपको करना है तो अपने ब्राउज़र कैश को साफ़ करें। –

उत्तर

0

शायद requests.post के बजाय requests.put कोशिश (अगर कोई रचना नहीं करते, एक मौजूदा संसाधन संशोधित करना चाहते हैं)

0

मैं जब कोशिश कर (पर्ल का उपयोग करके) इस एक ही समस्या हो रही थी, एक "सफलता" संदेश मिल रहा वास्तव में कोई बदलाव होने के बावजूद imgur API v3 के माध्यम से शीर्षक/विवरण बदलने के लिए, और आखिर में समस्या की खोज की: मुझे संसाधित होने के अनुरोध के लिए "सामग्री-प्रकार: एप्लिकेशन/जेसन" शीर्षलेख मैन्युअल रूप से सेट करना पड़ा। ऐसा करने में विफलता ने 200/सफलता संदेश वापस कर दिया लेकिन कोई वास्तविक परिवर्तन नहीं किया। एक ही मुद्दे ने मुझे नई एपीआई के साथ छवियों को सही होने तक अपलोड करने से रोका।

0

मुझे पता है कि यह पुराना सवाल है, लेकिन शायद यह किसी की मदद करेगा। मेरे लिए यह काम करता है।

जोड़ें हैडर:

'Content-Type': 'application/json' 

और में requests.post उपयोग jsondata के बजाय

r = requests.post(url, 
    headers={'Authorization':'Bearer '+access_token, 'Content-Type': 'application/json'}, 
    json={'description':'blahblahblah'}, verify=False) 
संबंधित मुद्दे