假设用户在一条消息中发送了 3 张照片,您需要确保json在 3 之后只显示 1 条消息。它不符合我的想法,我需要坚持以了解最后一条消息何时到达。
发了3张照片就来了3张,3张json之后json就需要给用户发消息了,但是一般情况下是不知道会发多少张照片,可能是2张,也可能是5张。我写了一个小代码,但在我的情况下,bot.send_message(message.chat.id, 'Описание')如果我输入我的代码,它将显示 3 条消息或不显示任何内容return。您需要类似于 的东西message[-1],但它不起作用。告诉我如何实现这个?
代码示例:
@bot.message_handler(content_types=['photo', 'video'])
def second(message):
specification = message.text
if message.media_group_id:
idphoto = message.photo[0].file_id
conn, cursor = connecting()
cursor.execute("INSERT INTO orders VALUES (?,?)", (message.chat.id, idphoto))
conn.commit()
#return # либо будет выводить 3 сообщения ниже, либо ни одного
bot.send_message(message.chat.id, 'Описание')
描述的案例是发送一个媒体组。您将收到多少条消息,您不知道,所以不要相信评论中的答案。
Message对象具有
media_group_id与来自同一组的消息匹配的标识符。创建临时存储,如
set().向处理程序添加逻辑:
1因此,当接收到来自同一组的多个消息时,响应只会飞走一次。说到,如果用户一次有 2 个或更多图像(最多 10 个)
aiogram,有一个更好、更优雅的解决方案如何只发送 1 条消息。首先:不需要创建额外的存储空间——
fsm它aiogram已经提供了其次,无需检查
media_group_id,每个用户都有自己的字典,您可以在其中编写图像标识符。所以,示例代码: