我一直在尝试使用member.history()
方法获取自己的消息历史记录。但是我得到的只是一个空asyncIterator
,里面没有任何东西。
import discord
from discord.ext import commands
client = commands.Bot(command_prefix = ".",intents=discord.Intents.all())
@client.event
async def on_ready():
print('Bot is ready')
@client.command()
async def test(ctx):
me = ctx.guild.get_member_named("Slade")
print(me)
async for message in me.history(limit=5):
print(message)
client.run("token would go here")
上面的代码唯一打印的是就绪消息以及我自己的不一致名称和标签。 我在做什么错了?
答案 0 :(得分:0)
执行以下操作
messages = await channel.history(limit=5).flatten()
这将返回消息列表。
所以您的功能将是:
@client.command()
async def test(ctx):
me = ctx.guild.get_member_named("Slade")
print(me)
messages = []
for channel in ctx.guild.channels:
message = await channel.history(limit=5).flatten()
messages.append(message)
for message in messages:
print(message[0].content)
```
This returns for you 5 messages of every channel in your server.
答案 1 :(得分:0)
找出问题所在。出于某些原因,member.history()
和user.history()
函数都返回与漫游器相关的私有DM ,而不是公会消息历史记录。