aiogram 3.4.1如何发送带文字的多张图片?
解决aiogram 3.4.1发送带文字的媒体组问题
你之前的写法无效,是因为answer_media_group方法本身没有caption或text参数,而且Telegram的API规则里,媒体组的统一标题只能绑定在第一个媒体元素上,不能在调用方法时全局设置。
正确的做法是把标题直接设置在列表的第一个InputMediaPhoto对象里:
group = [] for index, photo in enumerate(photos2): if index == 0: # 第一个图片带上全局标题,若需要格式支持可添加parse_mode参数 media = InputMediaPhoto(media=photo, caption="Text123") else: media = InputMediaPhoto(media=photo) group.append(media) await message.answer_media_group(group)
如果需要给每张图片单独加说明,也可以给每个InputMediaPhoto都设置caption:
group = [] # 假设你有与photos2长度匹配的标题列表captions for photo, caption in zip(photos2, captions): media = InputMediaPhoto(media=photo, caption=caption) group.append(media) await message.answer_media_group(group)
注意:Telegram客户端中,媒体组的全局标题只会显示在第一张图下方,后续图片的单独说明会各自对应显示在图片下方。
内容的提问来源于stack exchange,提问作者Dendi1
相关产品推荐
相关产品推荐

