Discord.py:如何在特定频道上打印最后一条消息?

时间:2021-03-30 09:38:53

标签: python discord.py

我的代码是这样,但输出很糟糕

import os
import discord
import asyncio
from discord.ext import tasks, commands
client = discord.Client()


@client.event
async def on_ready():
 print(f'Connected to Discord!')
 channel = client.get_channel(231231321213)
 messages = await channel.history(limit=1).flatten()
 print(messages)
 
 


client.run('token', bot=False)

我的输出:

连接到 Discord! [ author= flags=>] 回溯(最近一次调用):

文件“C:\Users\cinar\untitled0.py”,第 18 行,在 client.run('Bot Token', bot=False)

文件“D:\Users\cinar\anaconda3\lib\site-packages\discord\client.py”,第 714 行,运行中 _cleanup_loop(循环)

文件“D:\Users\cinar\anaconda3\lib\site-packages\discord\client.py”,第 95 行,在 _cleanup_loop loop.close()

文件“D:\Users\cinar\anaconda3\lib\asyncio\selector_events.py”,第 89 行,关闭 raise RuntimeError("无法关闭正在运行的事件循环")

运行时错误:无法关闭正在运行的事件循环

1 个答案:

答案 0 :(得分:0)

我认为您正在尝试使用实际的机器人令牌进行自我机器人,我不建议继续这样做,因为自我机器人违反了 ToS。但是,如果您确实想这样做,请使用您的电子邮件和密码而不是机器人令牌。我要再次警告您,self botting 违反 ToS,可能会导致您的帐户被禁止,因此请自行承担风险。无论如何,有人已经问过如何以用户身份登录 here.

同样,正如我之前在评论中所说,我查看了 discord.py 文档并发现 history() 正在产生消息。所以也许你应该尝试做 print(message[0].content)