Python: бот отправляет файл во время разговора
Я создал бота с помощью модуля python-telegram-bot.
Бот генерирует штрих-код с помощью модуля pybarcode.
Во время разговора с ботом я хотел бы отправить пользователю созданное изображение:
from telegram import (ReplyKeyboardMarkup, ReplyKeyboardRemove, InlineKeyboardButton, KeyboardButton)
from telegram.ext import (Updater, CommandHandler, MessageHandler, Filters, RegexHandler,
ConversationHandler)
from StringIO import StringIO
import barcode
#..............................
#..............................
def send_barcode(bot, update, user_data):
fp = StringIO()
generate('EAN13', u'5901234123457', writer=ImageWriter(), output=fp)
#... how can I send the RAW image in fp object?
#..............................................
#..............................
#..............................
заранее спасибо
1 ответ
Используйте bot.send_photo. Если у вас есть файл на диске, используйте его так: bot.send_photo(chat_id=chat_id, photo=open('path/image.png', 'rb'))
, Если вы хотите опубликовать файл из памяти, есть пример для него из github wiki:
from io import BytesIO
bio = BytesIO()
bio.name = 'image.jpeg'
image.save(bio, 'JPEG')
bio.seek(0)
bot.send_photo(chat_id, photo=bio)