Twython 在发布图片时返回 400(错误请求)
Twython returned a 400 (Bad Request) when tweeting an image
我正在 python 运行 和 Raspbian 中编写一个小脚本来发布速度测试结果,我正在尝试附上图片,
这是代码:
import sys, urllib, cStringIO
from PIL import Image
from twython import Twython
...
file = cStringIO.StringIO(urllib.urlopen(url_img_).read())
imagen = Image.open(file)
print imagen
image_ids = twitter.upload_media(media=imagen)
print image_ids
twitter.update_status(status=MESSAGE_, media_ids=[image_ids['media_id']])
但我在 twitter.upload_media:
上收到此错误
Traceback (most recent call last):
File "twitter_phy.py", line 29, in <module>
image_ids = twitter.upload_media(media=imagen)
File "/usr/local/lib/python2.7/dist-packages/twython/endpoints.py", line 140, in upload_media
return self.post('https://upload.twitter.com/1.1/media/upload.json', params=params)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 269, in post
return self.request(endpoint, 'POST', params=params, version=version)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 259, in request
api_call=url)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 198, in _request
retry_after=response.headers.get('X-Rate-Limit-Reset'))
twython.exceptions.TwythonError: Twitter API returned a 400 (Bad Request), media parameter is missing.
这是我对python的第一个方法,请帮忙:(
糟糕...所以先保存文件就成功了:
## download the image
f = open('speedtest.png','wb')
f.write(urllib.urlopen(url_).read())
f.close()
## read the saved image
imagen = open('speedtest.png', 'rb')
## upload it
image_ids = twitter.upload_media(media=imagen)
## tweet it!
twitter.update_status(status=MESSAGE_, media_ids=[image_ids['media_id']])
sys.exit()
Twython 需要将媒体参数检测为文件,它在 helpers.py
中通过检查 hasattr(v, 'read') and callable(v.read)
.
来实现
我正在 python 运行 和 Raspbian 中编写一个小脚本来发布速度测试结果,我正在尝试附上图片, 这是代码:
import sys, urllib, cStringIO
from PIL import Image
from twython import Twython
...
file = cStringIO.StringIO(urllib.urlopen(url_img_).read())
imagen = Image.open(file)
print imagen
image_ids = twitter.upload_media(media=imagen)
print image_ids
twitter.update_status(status=MESSAGE_, media_ids=[image_ids['media_id']])
但我在 twitter.upload_media:
上收到此错误Traceback (most recent call last):
File "twitter_phy.py", line 29, in <module>
image_ids = twitter.upload_media(media=imagen)
File "/usr/local/lib/python2.7/dist-packages/twython/endpoints.py", line 140, in upload_media
return self.post('https://upload.twitter.com/1.1/media/upload.json', params=params)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 269, in post
return self.request(endpoint, 'POST', params=params, version=version)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 259, in request
api_call=url)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 198, in _request
retry_after=response.headers.get('X-Rate-Limit-Reset'))
twython.exceptions.TwythonError: Twitter API returned a 400 (Bad Request), media parameter is missing.
这是我对python的第一个方法,请帮忙:(
糟糕...所以先保存文件就成功了:
## download the image
f = open('speedtest.png','wb')
f.write(urllib.urlopen(url_).read())
f.close()
## read the saved image
imagen = open('speedtest.png', 'rb')
## upload it
image_ids = twitter.upload_media(media=imagen)
## tweet it!
twitter.update_status(status=MESSAGE_, media_ids=[image_ids['media_id']])
sys.exit()
Twython 需要将媒体参数检测为文件,它在 helpers.py
中通过检查 hasattr(v, 'read') and callable(v.read)
.