当前位置: 首页 > 知识库问答 >
问题:

让不和谐机器人发送常规消息

宣意致
2023-03-14

我正在尝试制作一个机器人,每4小时发送一次自动消息,但由于某些原因,它无法工作。我查看了所有的google和stack overflow,但没有一个答案能帮助我。不和谐是否改变了机器人发送消息的方式?

@tasks.loop(seconds=20)
async def messages():
  channel = bot.get_channel(channel_id)
  response = "test"
  await channel.send(response)

messages.start()

如果我试图运行这个代码,它会给我这个错误

AttributeError: 'NoneType' object has no attribute 'send'

任何帮助将不胜感激并感谢您的时间

共有2个答案

苏鹏鹍
2023-03-14

我自己设法修好了它。而不是通道=bot.get_channel(channel_id)通过使用通道=client.get_channel(id=channel_id)从客户端获取id

async def messages():
  await client.wait_until_ready()
  while not client.is_closed():
    channel = client.get_channel(id=channel_id)
    response = "test"
    await channel.send(response)

    await asyncio.sleep(60*60*4)
client.loop.create_task(messages())
郎俊雅
2023-03-14

使用客户端。环create_task()您可以创建一个重复任务,我添加了客户端。wait_until_ready()以等待bot启动并使用asyncio。睡眠(秒)机器人将等待4小时。

async def message_loop():
await client.wait_until_ready()

while not client.is_closed():
    #your code here
    channel = bot.get_channel(channel_id)
    response = "test"
    await channel.send(response)

    await asyncio.sleep(60*60*4)#seconds*minute*hour
client.loop.create_task(message_loop())
 类似资料:
  • 请不要说“已经回答”,因为我尝试了一切,包括这里的所有相关帖子,显然,我正在阅读api文档。 完全错误为: 忽略on_ready Traceback(最近一次调用)中的异常:文件“/usr/local/lib/python3.8/dist packages/discord/client.py”,第312行,在on_ready wait channel中的事件wait coro(*args,**kw

  • 在不和谐中发送私人消息的问题。以下是两个代码示例(简化)。 此代码块将消息(cookie表情符号)发回给用户,无论它是私人聊天(与机器人)还是频道 这段代码私下向用户发送了一条消息,如果用户在通道中发送了命令,它就可以工作了,我对此很满意。 问题是,我希望用户能够在频道或私人消息中向bot发送一条消息“.cookie”,并获取私人消息(cookie表情符号)。 最后一段代码。如果我发出命令。coo

  • 我的discord机器人每天凌晨4点自动发送消息。我不知道为什么。代码如下: 我不明白为什么我的机器人每天都自动向所有被邀请的服务器发送这条消息。 任何想法?

  • 我有一个不和谐机器人,定期检查数据库中的一些数据,如果有更新,它会向通道输出一些内容。所以我设置了一个每小时运行一次的函数。 当机器人被添加到多个服务器时,问题就出现了,在这些服务器中,消息只被发送到特定的,因此消息只被发送到我的服务器通道。本质上,我只向我的渠道发送通知,我怎么能向每个拥有我的机器人的渠道发送通知,这可能吗?

  • 我们正在创建一个不和谐机器人。 问题是控制台中没有错误,但不和谐聊天也是空的。所以完全没有回应。你能帮我说说我的错误是什么以及如何解决这个问题吗 祝你一切顺利,尼克斯

  • 我是否使用参数或可以避免,我基本上不希望用户输入他们的名字,我希望机器人自动做到这一点。