向循环中的频道发送消息 discord.py

时间:2020-12-28 00:03:42

标签: python discord.py

我希望机器人在循环中每隔一段时间向特定频道发送一条消息。我的代码设置与我在 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"

那么如何让机器人循环发送消息?

1 个答案:

答案 0 :(得分:0)

self.client.get_channel(787469158539198484) 返回 None(类型为 NoneType)。找出原因。

可能是 selfclient 没有使用该特定通道正确初始化(无论是什么......这将有助于获得有关您正在使用的库的更多上下文以及变量代表)。