0

我想将文件发送到 Telegram Bot API以发布图片。我在 Google App Engine 上使用 python,我想从 URL 下载图片并在 Telegram 消息中发送它,而不在磁盘上创建任何中间文件(我认为在平台上什至不可能)。

我已成功发送从磁盘获取的图像,但无论我如何尝试,我都无法发送从 URL 检索到的图片。这是工作代码:

import urllib2
import requests

photo = open('cat.jpg', 'r')
#photo = urllib2.urlopen('http://scontent-b.cdninstagram.com/hphotos-xfa1/t51.2885-15/e15/10919672_584633251672188_179950734_n.jpg')

resp = requests.post(BASE_URL + 'sendPhoto',
    files={'photo' : photo},
    data={'chat_id' : '95297807'},
)

如果我得到带有 urlopen 的照片,它将无法正常工作。我尝试使用 StringIO,但它也不起作用。有任何想法吗?

4

1 回答 1

0
import urllib2
from StringIO import StringIO
from PIL import Image

url='http://scontent-b.cdninstagram.com/hphotos-xfa1/t51.2885-15/e15/10919672_584633251672188_179950734_n.jpg'

photo=Image.open(StringIO(urllib2.urlopen(url).read()))
于 2015-06-25T22:09:55.290 回答