Python 不一致抓取消息

Python 不一致抓取消息,python,python-3.x,discord.py,Python,Python 3.x,Discord.py,我正在尝试从一个公会的特定频道中的用户那里获取所有消息。然而,它只从用户那里收到一条消息,即使用户在频道/公会中发送了30多条消息 async def check(channel): fetchMessages = await channel.history().find(lambda m: m.author.id == 627862713242222632) print(fetchMessages.content) 问题是.find()和.get()只返回与您的条件匹配的第一

我正在尝试从一个公会的特定频道中的用户那里获取所有消息。然而,它只从用户那里收到一条消息,即使用户在频道/公会中发送了30多条消息

async def check(channel):
    fetchMessages = await channel.history().find(lambda m: m.author.id == 627862713242222632)
    print(fetchMessages.content)

问题是
.find()
.get()
只返回与您的条件匹配的第一个条目。您可以改为
flant()
来自该频道的消息,该频道将为您提供消息列表,然后过滤掉属于您指定ID的消息。确保检查文档的链接

@client.command()
异步def检查(ctx,通道:discord.TextChannel):#现在可以标记通道
messages=wait channel.history().flatte()
#消息现在是消息对象的列表。
对于m in消息:
如果m.author.id==62786271324222632:#您提供的id
打印(m.content)#每次打印一条消息
或者另一种方法是使用
filter()

@client.command()
异步def检查(ctx,通道:discord.TextChannel):
def用户过滤器(消息):
返回message.author.id==62786271324222632
messages=[m.content async for m in channel.history().filter(用户\过滤器)]
打印(消息)#打印从上一行获得的列表

非常感谢您!