我希望机器人在循环中每隔一段时间向特定频道发送一条消息。我的代码设置与我在 on_ready
函数中所做的完全一样,但出现错误。此外,我的 on_ready
函数位于 main.py
中,而我的 interval_message
位于外部齿轮中,如 loops.py
on_ready 函数(main.py):
@client.event
async def on_ready():
channel = client.get_channel(787469158539198484)
await channel.send(f"{client.user.mention} online")
print("Bot is online")
interval_message 函数 (loops.py)
@tasks.loop(seconds=60.0)
async def interval_message(self):
channel = self.client.get_channel(787469158539198484)
await channel.send("Random message")
问题是 on_ready
没问题并发送消息,而 interval_message
返回错误:
AttributeError: "NoneType" object has no attribute "send"
那么如何让机器人循环发送消息?
答案 0 :(得分:0)
self.client.get_channel(787469158539198484)
返回 None
(类型为 NoneType
)。找出原因。
可能是 self
的 client
没有使用该特定通道正确初始化(无论是什么......这将有助于获得有关您正在使用的库的更多上下文以及变量代表)。