![](/img/trans.png)
[英]Send document to telegram bot using python-telegram-bot Package
[英]bot.send_media_group fails (python-telegram-bot)
我需要一個機器人處理程序,它將拍攝一組照片和視頻,並將它們連同文本一起發送到組中。 下面的代碼只發送分開的消息:
def photo(update: Update, context: CallbackContext) -> None:
global fwd_chat_id
context.bot.send_media_group(chat_id=fwd_chat_id,
media=[InputMediaPhoto(media=update.message.photo[0].file_id)])
photo_handler = MessageHandler(Filters.photo | Filters.video, photo)
dispatcher.add_handler(photo_handler)
但是,如果我嘗試先收集所有照片,然后將它們全部發送,我會收到“telegram.error.BadRequest:消息文本為空”
def photo(update: Update, context: CallbackContext) -> None:
global fwd_chat_id, media_group
if media_group == []:
media_group.append(InputMediaPhoto(media=update.message.photo[0].file_id, caption='1'))
else:
media_group.append(InputMediaPhoto(media=update.message.photo[0].file_id))
photo_handler = MessageHandler(Filters.photo | Filters.video, photo)
dispatcher.add_handler(photo_handler)
def finish_photo_loading(update: Update, context: CallbackContext) -> None:
global fwd_chat_id, media_group
context.bot.send_media_group(chat_id=fwd_chat_id,
media=media_group)
finish_handler = CommandHandler('finish', finish_photo_loading)
dispatcher.add_handler(finish_handler)
所以我的解決方案是收集所有打磨過的照片:
context.bot_data[update.message.from_user.username + '_media']. \
append(InputMediaPhoto(media=update.message.photo[-1].file_id))
然后使用 send_media_group:
context.bot.send_media_group(chat_id=update.effective_chat.id,
media=context.bot_data[update.message.from_user.username+'_media'])
獲得命令/完成后
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.