Загрузка изображения с помощью PIL + twython в твиттер без его сохранения - PullRequest
0 голосов
/ 12 июня 2019

После долгих поисков я наконец нашел его.Вот ответ.

Шаг 1

код для пользователя, чтобы предоставить ссылку и для PIL, чтобы изменить ее размер в соответствии с некоторыми условиями (не имеет отношения к вопросу).PIL открывает ссылку на файл изображения следующим образом:

img=Image.open(io.BytesIO(requests.get(url).content))

, где url - ссылка.

Step2

, затем PIL должен сохранить ееИ искать (0) в классе io.BytesIO:

blob = io.BytesIO()
img.save(blob, 'JPEG')
blob.seek(0)
response = twitter.upload_media(media=blob);

Шаг 3 Продолжить в соответствии с документацией:

twitter.update_status(status='Checkout this cool image!', media_ids=[response['media_id']])

Документация Twython устарела и StringIO() изменил пакет и также не принимает байтовые объекты.Я также не могу получить логику создания байтового объекта в строку и затем отправить его как байтовый объект.

https://twython.readthedocs.io/en/latest/usage/advanced_usage.html

Параметр media также принимает io.BytesIOОбъекты класса, как показано выше и в этом простом примере ниже:

response = twitter.upload_media(media=io.BytesIO(requests.get(url).content));
...