这是一个后续问题: uploading a file to imgur via python
我刚刚上传了一张图片到 Imgur,但我注意到它不公开供查看。在他们的 API 网站上,他们说上传后,如果您希望它公开,您应该将其提交给画廊。
我编写了一个可以用一个图像执行此操作的小型应用程序,但我不确定它是否不起作用,因为我没有正确提出请求,或者因为我可能缺少使用 Oauth2 模块,到目前为止我还没有需要使用它(我只是上传图片,但我不需要查看其他用户正在使用我的应用上传什么)。
import base64
import json
import requests
from base64 import b64encode
client_id = '6a06c6bb8360e78'
headers = {"Authorization": "Client-ID 6a06c6bb8360e78"}
api_key = '6a06c6bb8360e78'
url = "https://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'
}
)
data=json.loads(j1.text)['data']
data_id=data['id']
data_id_str=data_id.encode('ascii','ignore')
# Now I try to push the iamge to the gallery with id data:
url_gallery = "https://api.imgur.com/3/gallery/image/{id}.json"
r2 = requests.post(url_gallery, headers=headers, data={'title': 'First image', 'terms': '1', 'id': data_id_str})
我做完后得到的答案:r2.text 是 403 错误:
u'{"data":{"error":"Unauthorized",
"request":"\\/3\\/gallery\\/image\\/{id}.json",
"parameters":"terms = 1, id = 1jhIc2R, title = First
image","method":"POST"},"success":false,"status":403}'
这是用于提交图像的 Imgur API 链接,我不确定我在哪里做错了:https ://api.imgur.com/endpoints/gallery#to-gallery