我按照media/upload中的步骤操作。我在python中编写了这个函数
def upload_media(self,access_token,image_url):
client = self.get_client(access_token)
message = {'media' : image_url}
encoded_status = urllib.urlencode(message)
url = "https://upload.twitter.com/1.1/media/upload.json?"+ encoded_status
resp, content = client.request(url,'post')
return content
我得到了这个:
{"request":"\/1.1\/media\/upload.json","error":"media type unrecognized."}
答案 0 :(得分:0)
据我所知,错误在于尝试上传网址。 Twitter API要求您上传base64编码的图像。
请参阅:https://dev.twitter.com/rest/reference/post/media/upload
因此,应该是文件内容而不是图像的URL:
with open('example.jpg', 'rb') as f:
data = f.read()
message = {'media':data}
可选(我仍然没有想到这是否是必需的,因为不同的人会给出不同的答案),你可以用base-64编码对图像进行编码:
with open('example.jpg', 'rb') as f:
data = f.read()
data = data.encode('base64')
message = {'media':data}