在我的应用程序中,我让用户在 Twitter 上发帖。现在我想让他们通过媒体更新他们的状态。
在twython.py
我看到一种update_status_with_media
从文件系统读取图像并上传到 twitter 的方法。我的图像不在文件系统中,而是在 S3 存储桶中。
如何使用 S3 存储桶 url 进行这项工作?
在变量中传递 url file_
,在 IO 错误时失败,没有这样的文件或目录。
由于 UnicodeDecode 错误,传递 StringIO 失败。
传球urllib.urlopen(url).read()
给file() argument 1 must be encoded string without NULL bytes, not str
.
我也尝试使用post
方法并从 twitter api 获得 403 Forbidden,Error 创建状态。
刚刚解决了
呸,终于开始工作了!也许它会帮助其他人节省我花费的几个小时。
twitter = Twython(
app_key=settings.TWITTER_CONSUMER_KEY, app_secret=settings.TWITTER_CONSUMER_SECRET,
oauth_token=token.token, oauth_token_secret=token.secret
)
img = requests.get(url=image_obj.url).content
tweet = twitter.post('statuses/update_with_media',
params={'status': msg},
files={'media': (image_obj.url,
BytesIO(img))})