Twitter媒体/通过其网址上传图片

时间:2016-02-25 15:25:04

标签: python-2.7 google-app-engine twitter twitter-rest-api

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

1 个答案:

答案 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}