У меня возникли проблемы с загрузкой изображения в Imgur с использованием модуля запросов python и API Imgur.Загрузка файла в imgur через python
Мой код выглядит следующим образом:
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), или если я неправильно использую API Imgur.
Я также хотел бы получить URL-адрес изображения после подачи этого. Я не уверен, есть ли у API команда для этого, или если у модуля python.requests есть трюк, который может позволить мне ПОЛУЧИТЬ данные, которые я только что опубликовал (POST).
Очень похожий вопрос был дан здесь, и код на самом деле работал !: Trouble sending a file to Imgur
Однако, когда я использовал мой client_id, InstEd идентификатора приложения, который был использован в коде, он возвращал ошибку 400, а а также, когда я изменил
из: URL = "http://api.imgur.com/2/upload.json" к: URL = "http://api.imgur.com/3/upload.json"
Спасибо! это сделал трюк! Запрос продолжался, но я не могу получить хеш URL-адреса изображения, которое я только что разместил. Вы знаете, как я должен это делать? – Arturo
@Mecasickle, вы можете получить всю информацию в теле ответа. Просто добавьте к вашему коду то же самое, что: 'data = json.loads (j1.text) ['data']; print data ['link'], data ['id'], data ['deletehash'] ' ' – gaart
Хорошо, это сделано. Теперь я пытаюсь получить его в галерее. Вот ссылка http://api.imgur.com/models/gallery_image – Arturo