вам не нужно передавать идентификатор для TextChannel.history
@client.command()
async def history(ctx, limit: int = 100):
messages = await ctx.channel.history(limit=limit).flatten()
with open("channel_messages.txt", "a+", encoding="utf-8") as f:
print(*messages, sep="\n\n", file=f)
Другие изменения: удален name=
, поскольку по умолчанию используется имя обратного вызова, для каждой команды требуется контекст вызова , я добавил аргумент limit
, чтобы вы могли контролировать, как я получил много сообщений, и я изменил write
на print
с аргументом file
, потому что я думаю, что это облегчает контроль над тем, что записывается в файл.