4
我在使用python請求模塊和Imgur API將圖像上傳到Imgur時遇到了問題。通過python將文件上傳到imgur
我的代碼如下:
import base64
import json
import requests
from base64 import b64encode
client_id = 'my-client-id'
headers = {"Authorization": "Client-ID my-client-id"}
api_key = 'my-api-key'
url = "http://api.imgur.com/3/upload.json"
j1 = requests.post(
url,
headers = headers,
data = {
'key': api_key,
'image': b64encode(open('1.jpg', 'rb').read()),
'type': 'base64',
'name': '1.jpg',
'title': 'Picture no. 1'
}
)
我通常會得到400響應錯誤。我不確定myu client_id是否錯誤,或者我的請求是錯誤的(我在url請求方面的經驗很少),或者我使用Imgur API錯誤。
我想提交這個圖像後,我想獲取圖像的網址。我不確定API是否有一個命令,或者python.requests模塊有一個技巧,可以讓我獲取剛剛發佈的數據(POST)。
一個非常類似的問題在這裏回答,並且代碼實際工作!:Trouble sending a file to Imgur
然而,當我用我的CLIENT_ID,insted的是在代碼中使用的應用程序ID,它返回一個400錯誤,如還有當我從改變
: URL = 「http://api.imgur.com/2/upload.json」 到: URL = 「http://api.imgur.com/3/upload.json」
謝謝!那就是訣竅!請求繼續進行,但我無法獲取剛剛發佈的圖像的URL哈希值。你知道我應該怎麼做? – Arturo 2013-04-26 19:58:48
@Mecasickle,你可以得到響應的身體的所有信息。只需添加到您的代碼相同:'data = json.loads(j1.text)['data'];打印數據['link'],數據['id'],數據['deletehash']' ' – gaart 2013-04-26 20:27:55
好的,這樣做了。現在我想要得到它的畫廊。這裏是鏈接http://api.imgur.com/models/gallery_image – Arturo 2013-04-26 21:11:33