Медиа Twitter / загрузить изображение по его веб-URL

Я следовал за шагами в СМИ / загрузке. Я написал эту функцию в Python

def upload_media(self,access_token,image_url): client = self.get_client(access_token) message = {'media' : image_url} encoded_status = urllib.urlencode(message) url = "https://upload.twitter.com/1.1/media/upload.json?"+ encoded_status resp, content = client.request(url,'post') return content

И я получил это:

{"request":"\/1.1\/media\/upload.json","error":"media type unrecognized."}

1 ответ

Насколько я могу судить, ошибка в попытке загрузить URL. API Twitter требует, чтобы вы загрузили изображение в кодировке base64.

Смотрите: https://dev.twitter.com/rest/reference/post/media/upload

Таким образом, вместо URL изображения, это должен быть контент файла:

with open('example.jpg', 'rb') as f:
    data = f.read()
message = {'media':data}

По желанию (я до сих пор не выяснил, требуется ли это или нет, поскольку разные люди дают разные ответы), вы можете кодировать изображение в кодировке base-64:

with open('example.jpg', 'rb') as f:
    data = f.read()
data = data.encode('base64')
message = {'media':data}
Другие вопросы по тегам