Как создать учетную запись и загрузить изображение с этой учетной записью с imgur - PullRequest
0 голосов
/ 21 января 2020

Я проектирую python GUI, одна из его функций - сделать скриншот, загрузить его в Imgur и затем получить URL. Хотя у меня возникают проблемы с пониманием документации (тем более, что в ней говорится, что вам нужно создать учетную запись через API, но не то, как это сделать). Кто-нибудь сможет объяснить, как именно создать учетную запись, а затем загрузить изображение, используя ее?

Примечание: я использую PIL для получения снимков экрана, я бы предпочел, чтобы вы объяснили это как код, написанный с помощью библиотеки запросов. или, может быть, curl (так как это не слишком сложно для перехода к python с запросами), и я буду сохранять в программе только токен refre sh, так как он будет жестко закодирован (но пользователь может изменить его) ) и я не хочу, чтобы пользователь проходил аутентификацию.

Заранее спасибо.

Редактировать 1: Кроме того, я не буду использовать imgur python, поскольку он устарел.

Ответы [ 2 ]

2 голосов
/ 21 января 2020

Сначала вы должны создать нормальную учетную запись на Imgur.

После входа в обычную учетную запись вы можете go до https://api.imgur.com/oauth2/addclient, чтобы зарегистрировать приложение.

Требуется имя приложения и адрес электронной почты. Тип авторизации зависит от того, как вы будете его использовать.

enter image description here

Вы должны получить ключи API

enter image description here

Который вы можете использовать с 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)

Кстати: вы можете просматривать свои зарегистрированные приложения и восстанавливать ключи API (если вы его забыли) после входа в систему https://imgur.com/account/settings/apps

enter image description here

0 голосов
/ 21 января 2020

Вам нужно будет использовать Imgur API, который вы можете получить по адресу здесь : Как только вы получите ключ API с их сайта, вы можете начать писать некоторый код.

...