2013-02-17 17 views
5

API kullanarak önceden yüklenen bir resmin açıklamasını değiştirmeyi denemek için Python 2.7'deki istekleri kullanıyorum.Imgur API Mevcut görüntünün açıklamasını değiştirmiyor

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

Yani, bildiğim kadarıyla OAUTH iyi çalışıyor, ancak gördüğünüz gibi API kendisidir:

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

Ne karşılığında elde şudur: Imgur's API manual uyarınca bunu kullandım "Yanlış" geri geliyor ve açıklama değişmiyor. Bu belirli son nokta ile ilgili herhangi bir yerde daha fazla rehberlik bulamıyorum. Herhangi bir fikir?

+3

data içinde ve' success' olan 'TRUE, yani bildiğim kadarıyla Imgur söz konusu olduğunda API aramanız başarılı oldu. Buradan çıkacak sorunlar ne olursa olsun, bu konu için Imgur API'sı, * '' request' ya da Python'la birlikte. –

+1

Görebildiğim tek şey farklı yapabilirdi belki de '.json' uzantısını kullanmak, 'https://api.imgur.com/3/image/{}.json'.format(submission kullanın ['id']) 'bunun yerine URL olarak. –

+0

Aksi halde, Imgur GET yanıtlarının ağır bir şekilde önbelleğe alındığını göz önünde bulundurun, önbellek sonuçlarının bir süre için hala sunulması durumunda bir tanımlamanın sonucu bir süre için gizlenebilir. Gerekirse tarayıcı önbelleğini temizle. –

cevap

0

Belki (eğer oluşturarak değil, mevcut bir kaynak değiştirmek istiyorum) yerine requests.post ait requests.put denemek

0

çalışırken bir "başarılı" iletisi alıyorum, (perl kullanarak) bu aynı sorunu vardı hiçbir değişiklik olmamasına rağmen imgur API v3 ile başlığı/açıklamayı değiştirmek ve nihayet problemi keşfettim: İşlenecek istek için "Content-Type: application/json" başlığını elle ayarlamak zorunda kaldım. Bunun yapılmaması, 200/başarı mesajı verdi ancak gerçek bir değişiklik yapılmadı. Aynı sorun düzeltilene kadar yeni API ile resim yüklememi engelledi.

0

Bunun eski bir soru olduğunu biliyorum, ama belki birilerine yardımcı olacaktır. Benim için işe yarıyor.

Ekleme başlığı:

'Content-Type': 'application/json' 

Ve Sen 200 `status` koduna sahip requests.post kullanım json yerine

r = requests.post(url, 
    headers={'Authorization':'Bearer '+access_token, 'Content-Type': 'application/json'}, 
    json={'description':'blahblahblah'}, verify=False) 
İlgili konular