如何创建一个帐户,并使用该帐户使用 imgur 上传图片

How to create an account, and upload an image with that account with imgur

我正在设计一个python GUI,它的功能之一是截图,上传到Imgur,然后得到URL。尽管我在理解文档时遇到问题(特别是因为它说您需要通过 API 创建一个帐户,但没有说明如何创建。)。谁能解释一下如何创建一个帐户然后使用它上传图片?

注意:我正在使用 PIL 来获取屏幕截图,我希望您将其解释为使用请求库或 curl 编写的代码(因为使用请求移动到 python 并不难),并且我将只在程序中保存刷新令牌,因为它是硬编码的(但用户可以更改它)并且我不希望用户进行身份验证。

提前致谢。

编辑 1:另外,我不会使用 imgurpython,因为它已经过时了。

您将需要使用 Imgur API,您可以从 here: 从他们的站点获得 API 密钥后,您就可以开始编写一些代码了。

首先你必须在 Imgur 上创建普通帐户。

登录普通账户后,您可以前往https://api.imgur.com/oauth2/addclient注册应用程序。

需要应用名称和邮箱。授权类型取决于您将如何使用它。

你应该得到 API 把钥匙

可以与 API

一起使用

获取信息:

import requests

headers = {
    'Authorization': 'Client-ID f1XXXXXXXXXXXXX',
}

#https://i.imgur.com/cvWgXFc.jpg
imageHash = 'cvWgXFc'

r = requests.get(f'https://api.imgur.com/3/image/{imageHash}', headers=headers)
print('status:', r.status_code)
data = r.json()

print(data)
print('size:', data['data']['size'])

结果:

status: 200

{'data': {'id': 'cvWgXFc', 'title': None, 'description': None, 'datetime': 1579572289, 'type': 'image/jpeg', 'animated': False, 'width': 506, 'height': 500, 'size': 89341, 'views': 8087, 'bandwidth': 722500667, 'vote': None, 'favorite': False, 'nsfw': False, 'section': None, 'account_url': None, 'account_id': None, 'is_ad': False, 'in_most_viral': False, 'has_sound': False, 'tags': [], 'ad_type': 0, 'ad_url': '', 'edited': '0', 'in_gallery': False, 'link': 'https://i.imgur.com/cvWgXFc.jpg', 'ad_config': {'safeFlags': ['onsfw_mod_safe', 'share', 'page_load'], 'highRiskFlags': [], 'unsafeFlags': ['not_in_gallery', 'sixth_mod_unsafe'], 'wallUnsafeFlags': [], 'showsAds': False}}, 'success': True, 'status': 200}

size: 89341

上传:

import requests
import base64

headers = {
    'Authorization': 'Client-ID f1XXXXXXXXXXXXX',
}

params = {
  'image': base64.b64encode(open('images.png', 'rb').read())
}

r = requests.post(f'https://api.imgur.com/3/image', headers=headers, data=params)
print('status:', r.status_code)
data = r.json()
print(data)

顺便说一句: 您可以在 https://imgur.com/account/settings/apps

上登录后看到您注册的应用程序并重新生成 API 密钥(如果您忘记了)