簡體   English   中英

bot.send_media_group 失敗(python-telegram-bot)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM