【发布时间】:2019-08-17 14:07:12
【问题描述】:
img_url = 'https://upload.twitter.com/1.1/media/upload.json'
auth = OAuth1('',
'',
'',
'')
file = open('test.png', 'rb')
binary_data = file.read()
file.close()
img_data = requests.post(img_url, auth = auth, params = {'media': binary_data})
print(img_data)
返回
Response [400]
请注意,通过https://api.twitter.com/1.1/statuses/update.json 发布正常的文本状态更新工作正常,所以我认为错误的请求不在于授权。我还尝试在 base 64 中对图像进行编码,然后将其传递给也返回相同响应的“media_data”参数。
到目前为止,我一直在关注https://dev.twitter.com/rest/reference/post/media/upload上的官方api参考
【问题讨论】:
-
检查您的帖子是 multipart/form-data 还是 application/x-www-form-urlencoded。尝试在您的请求中添加 'content-type': 'application/x-www-form-urlencoded' 标头。来源:dev.twitter.com/rest/reference/post/media/upload。可能的实现示例:stackoverflow.com/questions/9733638/…
-
TwitterDev 的 github github.com/twitterdev/large-video-upload-python/blob/master/… 上有一个很好的 Python 示例
标签: python twitter python-requests