首页 > 解决方案 > Twython 无法上传图片并响应“Twitter API 返回 400(错误请求)”

问题描述

Twython 版本 3.8.2 Python:3.6.8

我似乎无法上传图片作为推文的一部分。我收到 400 Bad Request 错误,但我无法确定如何或为什么。我可以毫无问题地使用“update_status(msg)”调用发送推文,所以我知道凭据很好。要上传的图片文件是本地且可读的 (rw-rw-rw) 有没有办法从 Twitter 返回的响应中获取更多细节?

    twitter = Twython(
    consumer_key,
    consumer_secret,
    access_token_key,
    access_token_secret)


    message="Hello World"
    photo = open('/tmp/beach.jpg')
    response = twitter.upload_media(media=photo)
    twitter.update_status(status=message, media_ids=[response['media_id']])

    Traceback (most recent call last):
      File "twitter2.py", line 31, in <module>
        response = twitter.upload_media(media=photo)
      File "/home/me/python-virtual-enviros/slack_api/lib64/python3.6/site-packages/twython/endpoints.py", line 162, in upload_media
        return self.post('https://upload.twitter.com/1.1/media/upload.json', params=params)
      File "/home/me/python-virtual-enviros/slack_api/lib64/python3.6/site-packages/twython/api.py", line 282, in post
        return self.request(endpoint, 'POST', params=params, version=version, json_encoded=json_encoded)
      File "/home/me/python-virtual-enviros/slack_api/lib64/python3.6/site-packages/twython/api.py", line 272, in request
        api_call=url, json_encoded=json_encoded)
      File "/home/me/python-virtual-enviros/slack_api/lib64/python3.6/site-packages/twython/api.py", line 204, in _request
        retry_after=response.headers.get('X-Rate-Limit-Reset'))
    twython.exceptions.TwythonError: Twitter API returned a 400 (Bad Request), An error occurred processing your request.

标签: twitteruploadtwython

解决方案


文件已损坏。有了一个好的文件,上面的代码就可以正常工作并且没有返回错误。


推荐阅读