gpt4 book ai didi

python - 如何将 statuses/update_with_media 与 Python Twitter Tools lib 一起使用?

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:57 30 4
gpt4 key购买 nike

我想使用 PTT(Python Twitter 工具)在 Twitter 上发布图像。目前,我的代码很像这样:

def _TweetMedia(self, t, m):
try:
param = {'media[]', m}
self.API.statuses.update_with_media(status = t, **param)
except Exception as e:
print("Failed to tweet media, reason: %s" % e)
return False

return True

但是失败了

Failed to tweet media, reason: Twitter sent status 403 for URL: 1.1/statuses/update_with_media.json 
using parameters: (oauth_consumer_key=y&oauth_nonce=13911566611016743303&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1399668386&oauth_token=x&oauth_version=1.0&oauth_signature=z)
details: {"errors":[{"code":189,"message":"Error creating status."}]}

我真的不知道为什么。我的图像是从 URL 读取的,然后以 base64 进行编码。

def DownloadImg(self, uri):
try:
source = b64encode(urllib2.urlopen(uri).read())
filename = uri.split('/')[-1]
return (filename, source)
except Exception as e:
print("Failed to download %s: %s." % (uri.split()[-1], e))
return (None, None)
pass

最佳答案

我也想知道这是如何工作的。我还没有答案,也许比你更菜鸟,但也许我有领先优势。在此 API 调用的文档中,它解释了所需图像数据的格式:

Blockquote Unlike POST statuses/update, this method expects raw multipart data. Your POST request's Content-Type should be set to multipart/form-data with the media[] parameter .

Blockquote

它将图像格式描述为:

Blockquote This data must be either the raw image bytes or encoded as base64

据我所知,您的 Base64 编码似乎是正确的,但多部分要求又如何呢?老实说,我不知道这意味着什么,但也许这是值得研究的事情

另一个问题是图像大小受到限制:

Blockquote Note: Request the GET help/configuration endpoint to get the current max_media_per_upload and photo_size_limit values

看起来您只是上传单个图像,但为了获得图像大小限制,您一次性调用 GET 帮助/配置端点并且你应该得到一个大小限制,该限制应该在 Twitter 希望允许之前有效随着时间的推移,它会变得更加自由。从该端点的 API 文档中给出的示例响应来看,图像大小限制如下:

Blockquote

照片大小限制": 3145728,

“照片尺寸”:{ “大的”: { “w”:1024, “调整大小”:“适合”, “h”:2048 }, “中等的”: { “w”:600, “调整大小”:“适合”, “小时”:1200 }, “小的”: { “w”:340, “调整大小”:“适合”, “h”:480 }, “拇指”:{ “w”:150, “调整大小”:“裁剪”, “h”:150 } },

当我有时间的时候,我会再回到这个话题。如果您弄清楚了请告诉我,我也会这样做。

关于python - 如何将 statuses/update_with_media 与 Python Twitter Tools lib 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23573753/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com