0

我按照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."}

4

1 回答 1

0

据我所知,错误在于尝试上传 URL。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}
于 2016-03-09T14:49:33.570 回答