После долгих поисков я наконец нашел его.Вот ответ.
Шаг 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));